diff --git a/src/geometry/ext/Geometry.Drag.js b/src/geometry/ext/Geometry.Drag.js index 6dac6e2a8d..6d16c2a319 100644 --- a/src/geometry/ext/Geometry.Drag.js +++ b/src/geometry/ext/Geometry.Drag.js @@ -166,8 +166,11 @@ class GeometryDragHandler extends Handler { _dragging(param) { const target = this.target; - const map = target.getMap(), - e = map._parseEvent(param['domEvent']); + const map = target.getMap(); + if (map._isEventOutMap(param['domEvent'])) { + return; + } + const e = map._parseEvent(param['domEvent']); const domEvent = e['domEvent']; if (domEvent.touches && domEvent.touches.length > 1) { diff --git a/src/map/Map.DomEvents.js b/src/map/Map.DomEvents.js index 316e9c9f72..d2d55db44f 100644 --- a/src/map/Map.DomEvents.js +++ b/src/map/Map.DomEvents.js @@ -210,7 +210,7 @@ Map.include(/** @lends Map.prototype */ { } else { this._fireDOMEvent(this, e, 'dom:' + e.type); } - if (this._ignoreEvent(e)) { + if (this._ignoreEvent(e) || this._isEventOutMap(e)) { return; } let mimicClick = false; @@ -252,7 +252,7 @@ Map.include(/** @lends Map.prototype */ { this._fireDOMEvent(this, e, 'dom:click'); } } - if (this._ignoreEvent(e)) { + if (this._ignoreEvent(e) || this._isEventOutMap(e)) { return; } this._fireDOMEvent(this, e, type); @@ -266,9 +266,9 @@ Map.include(/** @lends Map.prototype */ { if (!domEvent || !this._panels.control) { return false; } - if (this._isEventOutMap(domEvent)) { - return true; - } + // if (this._isEventOutMap(domEvent)) { + // return true; + // } let target = domEvent.srcElement || domEvent.target; let preTarget; if (target) { diff --git a/src/map/handler/Map.Drag.js b/src/map/handler/Map.Drag.js index af6bd639f5..d9863307a4 100644 --- a/src/map/handler/Map.Drag.js +++ b/src/map/handler/Map.Drag.js @@ -45,7 +45,7 @@ class MapDragHandler extends Handler { if (param.domEvent) { param = param.domEvent; } - return this.target._ignoreEvent(param); + return this.target._ignoreEvent(param) || this.target._isEventOutMap(param); } _onMouseDown(param) { diff --git a/src/map/handler/Map.ScrollWheelZoom.js b/src/map/handler/Map.ScrollWheelZoom.js index 9a1757fa1a..68f685e4f4 100644 --- a/src/map/handler/Map.ScrollWheelZoom.js +++ b/src/map/handler/Map.ScrollWheelZoom.js @@ -40,7 +40,7 @@ class MapScrollWheelZoomHandler extends Handler { stopPropagation(evt); } - if (map._ignoreEvent(evt) || !map.options['zoomable']) { + if (map._ignoreEvent(evt) || map._isEventOutMap(evt) || !map.options['zoomable']) { return false; } const container = map._containerDOM;