Skip to content

Commit 035dd3a

Browse files
committed
Fix JSButton codes.
e.buttons variable of the event instance seems more reliable. Click event doesn't need to read the mouse buttons. And also, it shouldn't because click event is also fired for touch devices natively by the browser. e.buttons variable gives 1->"for left", 2->"for right" and 4->"for middle" buttons. Use them now. Previously we were using 0->"for left", which is confused with 0->"for no buttons". Now there is no confusion. This fixes issues which happen when no button is pressed but we act like left button is pressed. Signed-off-by: Gökay Şatır <[email protected]> Change-Id: I8ebf58baad75a75fc83150ee628c7e95d29b86f4
1 parent 54c0b54 commit 035dd3a

File tree

3 files changed

+14
-12
lines changed

3 files changed

+14
-12
lines changed

browser/src/canvas/sections/MouseControl.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ class MouseControl extends CanvasSectionObject {
5959

6060
private readButtons(e: MouseEvent) {
6161
let buttons = 0;
62-
buttons |= e.button === app.JSButtons.left ? app.LOButtons.left : 0;
63-
buttons |= e.button === app.JSButtons.middle ? app.LOButtons.middle : 0;
64-
buttons |= e.button === app.JSButtons.right ? app.LOButtons.right : 0;
62+
buttons |= e.buttons === app.JSButtons.left ? app.LOButtons.left : 0;
63+
buttons |= e.buttons === app.JSButtons.middle ? app.LOButtons.middle : 0;
64+
buttons |= e.buttons === app.JSButtons.right ? app.LOButtons.right : 0;
6565

6666
return buttons;
6767
}
@@ -423,7 +423,9 @@ class MouseControl extends CanvasSectionObject {
423423

424424
if (!(<any>window).mode.isDesktop()) app.map.fire('closemobilewizard');
425425

426-
let buttons = this.readButtons(e);
426+
// Right click is not supported. And click event doesn't have "buttons" property set. Safe to set it here to default.
427+
let buttons = app.JSButtons.left;
428+
427429
let modifier = this.readModifier(e);
428430
const sendingPosition = this.currentPosition.clone();
429431

browser/src/control/Control.LokDialog.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -712,9 +712,9 @@ window.L.Control.LokDialog = window.L.Control.extend({
712712

713713
var buttons = 0;
714714
if (this._map['mouse']) {
715-
buttons |= e.button === app.JSButtons.left ? app.LOButtons.left : 0;
716-
buttons |= e.button === app.JSButtons.middle ? app.LOButtons.middle : 0;
717-
buttons |= e.button === app.JSButtons.right ? app.LOButtons.right : 0;
715+
buttons |= e.buttons === app.JSButtons.left ? app.LOButtons.left : 0;
716+
buttons |= e.buttons === app.JSButtons.middle ? app.LOButtons.middle : 0;
717+
buttons |= e.buttons === app.JSButtons.right ? app.LOButtons.right : 0;
718718
} else {
719719
buttons = 1;
720720
}
@@ -1097,9 +1097,9 @@ window.L.Control.LokDialog = window.L.Control.extend({
10971097
window.L.DomEvent.on(canvas, 'mousedown mouseup', function(e) {
10981098
var buttons = 0;
10991099
if (this._map['mouse']) {
1100-
buttons |= e.button === app.JSButtons.left ? app.LOButtons.left : 0;
1101-
buttons |= e.button === app.JSButtons.middle ? app.LOButtons.middle : 0;
1102-
buttons |= e.button === app.JSButtons.right ? app.LOButtons.right : 0;
1100+
buttons |= e.buttons === app.JSButtons.left ? app.LOButtons.left : 0;
1101+
buttons |= e.buttons === app.JSButtons.middle ? app.LOButtons.middle : 0;
1102+
buttons |= e.buttons === app.JSButtons.right ? app.LOButtons.right : 0;
11031103
} else {
11041104
buttons = 1;
11051105
}

browser/src/docstate.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ window.app = {
2727
CTRLMAC: 32768,
2828
},
2929
JSButtons: {
30-
left: 0,
31-
middle: 1,
30+
left: 1,
31+
middle: 4,
3232
right: 2,
3333
},
3434
LOButtons: {

0 commit comments

Comments
 (0)