fix: Allow copy of excalidraw elements only when inside excalidraw (#3206)

* fix: Allow copy event only inside canvas

* use pointerdown

* use document.getSelection

* remove poiterdown

* remove keyTest

* update changelog
This commit is contained in:
Aakansha Doshi 2021-03-09 11:52:28 +05:30 committed by GitHub
parent 1f7f07fbfb
commit 00ac804dd8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 10 additions and 1 deletions

View File

@ -17,7 +17,7 @@ export const actionCopy = register({
}; };
}, },
contextItemLabel: "labels.copy", contextItemLabel: "labels.copy",
keyTest: (event) => event[KEYS.CTRL_OR_CMD] && event.code === CODES.C, // Don't assign keyTest since its handled via copy event
}); });
export const actionCut = register({ export const actionCut = register({

View File

@ -1028,6 +1028,13 @@ class App extends React.Component<ExcalidrawProps, AppState> {
}); });
private onCopy = withBatchedUpdates((event: ClipboardEvent) => { private onCopy = withBatchedUpdates((event: ClipboardEvent) => {
const activeSelection = document.getSelection();
if (
activeSelection?.anchorNode &&
!this.excalidrawContainerRef.current!.contains(activeSelection.anchorNode)
) {
return;
}
if (isWritableElement(event.target)) { if (isWritableElement(event.target)) {
return; return;
} }

View File

@ -40,6 +40,7 @@ export const KEYS = {
TAB: "Tab", TAB: "Tab",
A: "a", A: "a",
C: "c",
D: "d", D: "d",
E: "e", E: "e",
L: "l", L: "l",

View File

@ -18,6 +18,7 @@ Please add the latest change on the top under the correct section.
### Fixes ### Fixes
- Allow copy of excalidraw elements only when inside excalidraw [#3206](https://github.com/excalidraw/excalidraw/pull/3206).
- Position text editor absolute and fix the offsets so it doesn't remain fixed when the container is scrolled [#3200](https://github.com/excalidraw/excalidraw/pull/3200). - Position text editor absolute and fix the offsets so it doesn't remain fixed when the container is scrolled [#3200](https://github.com/excalidraw/excalidraw/pull/3200).
- Scope CSS variables so that host CSS vars don't clash with excalidraw [#3199](https://github.com/excalidraw/excalidraw/pull/3199). - Scope CSS variables so that host CSS vars don't clash with excalidraw [#3199](https://github.com/excalidraw/excalidraw/pull/3199).