Merge pull request #8610 from ahocevar/mouseposition-touch
Sensible touch behavior of the MousePosition control
This commit is contained in:
@@ -44,6 +44,9 @@ const COORDINATE_FORMAT = 'coordinateFormat';
|
|||||||
* By default the control is shown in the top right corner of the map, but this
|
* By default the control is shown in the top right corner of the map, but this
|
||||||
* can be changed by using the css selector `.ol-mouse-position`.
|
* can be changed by using the css selector `.ol-mouse-position`.
|
||||||
*
|
*
|
||||||
|
* On touch devices, which usually do not have a mouse cursor, the coordinates
|
||||||
|
* of the currently touched position are shown.
|
||||||
|
*
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
class MousePosition extends Control {
|
class MousePosition extends Control {
|
||||||
@@ -175,11 +178,13 @@ class MousePosition extends Control {
|
|||||||
if (map) {
|
if (map) {
|
||||||
const viewport = map.getViewport();
|
const viewport = map.getViewport();
|
||||||
this.listenerKeys.push(
|
this.listenerKeys.push(
|
||||||
listen(viewport, EventType.MOUSEMOVE, this.handleMouseMove, this)
|
listen(viewport, EventType.MOUSEMOVE, this.handleMouseMove, this),
|
||||||
|
listen(viewport, EventType.TOUCHSTART, this.handleMouseMove, this)
|
||||||
);
|
);
|
||||||
if (this.renderOnMouseOut_) {
|
if (this.renderOnMouseOut_) {
|
||||||
this.listenerKeys.push(
|
this.listenerKeys.push(
|
||||||
listen(viewport, EventType.MOUSEOUT, this.handleMouseOut, this)
|
listen(viewport, EventType.MOUSEOUT, this.handleMouseOut, this),
|
||||||
|
listen(viewport, EventType.TOUCHEND, this.handleMouseOut, this)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -244,7 +249,8 @@ class MousePosition extends Control {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the mouseposition element.
|
* Update the projection. Rendering of the coordinates is done in
|
||||||
|
* `handleMouseMove` and `handleMouseUp`.
|
||||||
* @param {import("../MapEvent.js").default} mapEvent Map event.
|
* @param {import("../MapEvent.js").default} mapEvent Map event.
|
||||||
* @this {MousePosition}
|
* @this {MousePosition}
|
||||||
* @api
|
* @api
|
||||||
@@ -259,7 +265,6 @@ export function render(mapEvent) {
|
|||||||
this.transform_ = null;
|
this.transform_ = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.updateHTML_(this.lastMouseMovePixel_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user