From 2d7ceecc054a05220c1505373bd245fe83b4f232 Mon Sep 17 00:00:00 2001 From: Alex Vinober Date: Thu, 19 Oct 2017 15:31:39 -0400 Subject: [PATCH 1/2] Restore dispatching 'click' on right-click --- src/components/dragelement/index.js | 2 +- test/jasmine/tests/dragelement_test.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/dragelement/index.js b/src/components/dragelement/index.js index 67da40c4332..1daa3f809ab 100644 --- a/src/components/dragelement/index.js +++ b/src/components/dragelement/index.js @@ -104,7 +104,7 @@ dragElement.init = function init(options) { if(options.prepFn) options.prepFn(e, startX, startY); - if(hasHover) { + if(hasHover && (!e.buttons || (e.buttons && e.buttons !== 2))) { dragCover = coverSlip(); dragCover.style.cursor = window.getComputedStyle(element).cursor; } diff --git a/test/jasmine/tests/dragelement_test.js b/test/jasmine/tests/dragelement_test.js index 74326a13c58..2f8e8c1fbe3 100644 --- a/test/jasmine/tests/dragelement_test.js +++ b/test/jasmine/tests/dragelement_test.js @@ -137,7 +137,7 @@ describe('dragElement', function() { expect(countCoverSlip()).toEqual(0); mouseEvent('mouseup', this.x, this.y); - expect(mockObj.handleClick).not.toHaveBeenCalled(); + expect(mockObj.handleClick).toHaveBeenCalled(); }); it('should fire off click event when down/up without dragging', function() { From e113bb10bd56e869282976c5c9b318bb0a510b95 Mon Sep 17 00:00:00 2001 From: Alex Vinober Date: Thu, 19 Oct 2017 15:54:20 -0400 Subject: [PATCH 2/2] Refactored --- src/components/dragelement/index.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/components/dragelement/index.js b/src/components/dragelement/index.js index 1daa3f809ab..0cd2c296133 100644 --- a/src/components/dragelement/index.js +++ b/src/components/dragelement/index.js @@ -78,10 +78,6 @@ dragElement.init = function init(options) { element.ontouchstart = onStart; function onStart(e) { - if(e.buttons && e.buttons === 2) { // right click - return; - } - // make dragging and dragged into properties of gd // so that others can look at and modify them gd._dragged = false; @@ -90,6 +86,7 @@ dragElement.init = function init(options) { startX = offset[0]; startY = offset[1]; initialTarget = e.target; + var rightClick = e.buttons && e.buttons === 2; newMouseDownTime = (new Date()).getTime(); if(newMouseDownTime - gd._mouseDownTime < DBLCLICKDELAY) { @@ -104,11 +101,11 @@ dragElement.init = function init(options) { if(options.prepFn) options.prepFn(e, startX, startY); - if(hasHover && (!e.buttons || (e.buttons && e.buttons !== 2))) { + if(hasHover && !rightClick) { dragCover = coverSlip(); dragCover.style.cursor = window.getComputedStyle(element).cursor; } - else { + else if(!hasHover) { // document acts as a dragcover for mobile, bc we can't create dragcover dynamically dragCover = document; cursor = window.getComputedStyle(document.documentElement).cursor;