Skip to content

Commit b285ee7

Browse files
fix: don't start drag on right click for pointerdown
1 parent c563d57 commit b285ee7

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

e2e/draggable.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ describe('Draggable with Pointer events', () => {
4040
expect(args.pageY).toEqual(200);
4141
});
4242

43+
it("does not execute press if the left button is not clicked", () => {
44+
pointerdown(el, 100, 200, true, 2);
45+
46+
expect(handler).not.toHaveBeenCalled();
47+
});
48+
4349
it("executes press with originalEvent on pointerdown", () => {
4450
pointerdown(el, 100, 200);
4551

e2e/pointer-util.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
const pointerEvent = (type, x, y, isPrimary) =>
1+
const pointerEvent = (type, x, y, isPrimary = true, button = 0) =>
22
new PointerEvent(type, {
33
bubbles: true,
44
cancellable: true,
5+
button: button,
56

67
pointerId: 1,
78
isPrimary: isPrimary,
@@ -10,15 +11,15 @@ const pointerEvent = (type, x, y, isPrimary) =>
1011
view: window
1112
});
1213

13-
export function pointerdown(element, x, y, primary = true) {
14-
element.dispatchEvent(pointerEvent("pointerdown", x, y, primary));
14+
export function pointerdown(element, x, y, primary, button) {
15+
element.dispatchEvent(pointerEvent("pointerdown", x, y, primary, button));
1516
}
1617

17-
export function pointermove(element, x, y, primary = true) {
18+
export function pointermove(element, x, y, primary, button) {
1819
element.dispatchEvent(pointerEvent("pointermove", x, y, primary));
1920
}
2021

21-
export function pointerup(element, x, y, primary = true) {
22+
export function pointerup(element, x, y, primary, button) {
2223
element.dispatchEvent(pointerEvent("pointerup", x, y, primary));
2324
}
2425

src/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ export class Draggable {
9999
};
100100

101101
this._pointerdown = (e) => {
102-
if (e.isPrimary) {
102+
if (e.isPrimary && e.button === 0) {
103103
bind(this._element, "pointermove", this._pointermove);
104104
this._touchAction = e.target.style.touchAction;
105105
e.target.style.touchAction = "none";

0 commit comments

Comments
 (0)