mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-05-03 10:00:07 -04:00
Allow to drag THEN press alt to duplicate (#1373)
* fix typo * duplicate elements when alt is pressed on pointer move * document use case Co-authored-by: dwelle <luzar.david@gmail.com>
This commit is contained in:
parent
5ca763cdbb
commit
f3ef93e9ce
5 changed files with 68 additions and 50 deletions
|
@ -74,17 +74,22 @@ describe("duplicate element on move when ALT is clicked", () => {
|
|||
renderScene.mockClear();
|
||||
}
|
||||
|
||||
fireEvent.pointerDown(canvas, { clientX: 50, clientY: 20, altKey: true });
|
||||
fireEvent.pointerMove(canvas, { clientX: 20, clientY: 40 });
|
||||
fireEvent.pointerDown(canvas, { clientX: 50, clientY: 20 });
|
||||
fireEvent.pointerMove(canvas, { clientX: 20, clientY: 40, altKey: true });
|
||||
|
||||
// firing another pointerMove event with alt key pressed should NOT trigger
|
||||
// another duplication
|
||||
fireEvent.pointerMove(canvas, { clientX: 20, clientY: 40, altKey: true });
|
||||
fireEvent.pointerMove(canvas, { clientX: 10, clientY: 60 });
|
||||
fireEvent.pointerUp(canvas);
|
||||
|
||||
expect(renderScene).toHaveBeenCalledTimes(3);
|
||||
expect(renderScene).toHaveBeenCalledTimes(5);
|
||||
expect(h.state.selectionElement).toBeNull();
|
||||
expect(h.elements.length).toEqual(2);
|
||||
|
||||
// previous element should stay intact
|
||||
expect([h.elements[0].x, h.elements[0].y]).toEqual([30, 20]);
|
||||
expect([h.elements[1].x, h.elements[1].y]).toEqual([0, 40]);
|
||||
expect([h.elements[1].x, h.elements[1].y]).toEqual([-10, 60]);
|
||||
|
||||
h.elements.forEach((element) => expect(element).toMatchSnapshot());
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue