[Libreoffice-commits] online.git: 3 commits - loleaflet/src
Henry Castro (via logerrit)
logerrit at kemper.freedesktop.org
Mon Jul 15 09:31:35 UTC 2019
loleaflet/src/geo/LatLngBounds.js | 11 ++
loleaflet/src/layer/tile/TileLayer.js | 2
loleaflet/src/map/handler/Map.TouchGesture.js | 96 +++++++++++++++++++++++---
3 files changed, 99 insertions(+), 10 deletions(-)
New commits:
commit 41c6d402f47c28ad17c6cb14aa5aacfee2235d1c
Author: Henry Castro <hcastro at collabora.com>
AuthorDate: Thu Jun 27 16:57:22 2019 -0400
Commit: Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Mon Jul 15 11:31:22 2019 +0200
loleaflet: mobile: enable graphic dragging
Change-Id: Ia6ef34ff99891ad249d6f7aa6ed5915723d1013b
Reviewed-on: https://gerrit.libreoffice.org/75619
Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>
Tested-by: Tomaž Vajngerl <quikee at gmail.com>
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 183c87e4b..9cd0935bd 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -1848,7 +1848,7 @@ L.TileLayer = L.GridLayer.extend({
this._graphicMarker.isDragged = true;
this._graphicMarker._startPos = aPos;
}
- else if (e.type === 'graphicmoveend') {
+ else if (e.type === 'graphicmoveend' && this._graphicMarker._startPos) {
var deltaPos = aPos.subtract(this._graphicMarker._startPos);
if (deltaPos.x === 0 && deltaPos.y === 0) {
this._graphicMarker.isDragged = false;
diff --git a/loleaflet/src/map/handler/Map.TouchGesture.js b/loleaflet/src/map/handler/Map.TouchGesture.js
index 3acf95dc8..1fb90af1c 100644
--- a/loleaflet/src/map/handler/Map.TouchGesture.js
+++ b/loleaflet/src/map/handler/Map.TouchGesture.js
@@ -9,9 +9,15 @@ L.Map.mergeOptions({
/* global Hammer $ */
L.Map.TouchGesture = L.Handler.extend({
+ statics: {
+ MAP: 1,
+ CURSOR: 2,
+ GRAPHIC: 4
+ },
initialize: function (map) {
L.Handler.prototype.initialize.call(this, map);
+ this._state = L.Map.TouchGesture.MAP;
if (!this._hammer) {
this._hammer = new Hammer(this._map._mapPane);
@@ -103,8 +109,30 @@ L.Map.TouchGesture = L.Handler.extend({
},
_onHammer: function (e) {
- L.DomEvent.preventDefault(e.srcEvent);
- L.DomEvent.stopPropagation(e.srcEvent);
+ this._map.notifyActive();
+ if (e.isFirst) {
+ var point = e.pointers[0],
+ containerPoint = this._map.mouseEventToContainerPoint(point),
+ layerPoint = this._map.containerPointToLayerPoint(containerPoint),
+ latlng = this._map.layerPointToLatLng(layerPoint);
+
+ if (this._map._docLayer._graphicMarker && this._map._docLayer._graphicMarker.getBounds().contains(latlng)) {
+ this._state = L.Map.TouchGesture.GRAPHIC;
+ } else if (this._map._docLayer._cellCursor && this._map._docLayer._cellCursor.contains(latlng)) {
+ this._state = L.Map.TouchGesture.CURSOR;
+ } else {
+ this._state = L.Map.TouchGesture.MAP;
+ }
+ }
+
+ if (e.isLast && this._state !== L.Map.TouchGesture.MAP) {
+ this._state = L.Map.TouchGesture.hitTest.MAP;
+ }
+
+ if ($(e.srcEvent.target).has(this._map._mapPane)) {
+ L.DomEvent.preventDefault(e.srcEvent);
+ L.DomEvent.stopPropagation(e.srcEvent);
+ }
},
_onDocUp: function () {
@@ -125,7 +153,6 @@ L.Map.TouchGesture = L.Handler.extend({
this._map._docLayer._postMouseEvent('buttondown', mousePos.x, mousePos.y, 1, 4, 0);
this._map._docLayer._postMouseEvent('buttonup', mousePos.x, mousePos.y, 1, 4, 0);
- this._cellSelections = false;
e.preventDefault();
},
@@ -139,7 +166,6 @@ L.Map.TouchGesture = L.Handler.extend({
this._map._contextMenu._onMouseDown({originalEvent: e.srcEvent});
this._map._docLayer._postMouseEvent('buttondown', mousePos.x, mousePos.y, 1, 1, 0);
this._map._docLayer._postMouseEvent('buttonup', mousePos.x, mousePos.y, 1, 1, 0);
- this._cellSelections = false;
if (!this._map.hasFocus()) {
this._map.focus();
@@ -183,8 +209,6 @@ L.Map.TouchGesture = L.Handler.extend({
}
if (increasedCellCursor && increasedCellCursor.contains(latlng)) {
- this._cellSelections = true;
-
if (!originalCellCursor.contains(latlng)) {
var lat = latlng.lat;
var lng = latlng.lng;
@@ -204,7 +228,11 @@ L.Map.TouchGesture = L.Handler.extend({
latlng = new L.LatLng(lat, lng);
mousePos = this._map._docLayer._latLngToTwips(latlng);
}
+ }
+ if (this._state === L.Map.TouchGesture.GRAPHIC) {
+ this._map._docLayer._graphicMarker._onDragStart(e.srcEvent);
+ } else if (this._state === L.Map.TouchGesture.CURSOR) {
this._map._docLayer._postMouseEvent('buttondown', mousePos.x, mousePos.y, 1, 1, 0);
} else {
this._map.dragging._draggable._onDown(this._constructFakeEvent(point, 'mousedown'));
@@ -218,7 +246,9 @@ L.Map.TouchGesture = L.Handler.extend({
latlng = this._map.layerPointToLatLng(layerPoint),
mousePos = this._map._docLayer._latLngToTwips(latlng);
- if (this._cellSelections) {
+ if (this._state === L.Map.TouchGesture.GRAPHIC) {
+ this._map._docLayer._graphicMarker._onDrag(e.srcEvent);
+ } else if (this._state === L.Map.TouchGesture.CURSOR) {
this._map._docLayer._postMouseEvent('move', mousePos.x, mousePos.y, 1, 1, 0);
} else {
this._map.dragging._draggable._onMove(this._constructFakeEvent(point, 'mousemove'));
@@ -232,8 +262,9 @@ L.Map.TouchGesture = L.Handler.extend({
latlng = this._map.layerPointToLatLng(layerPoint),
mousePos = this._map._docLayer._latLngToTwips(latlng);
- if (this._cellSelections) {
- this._cellSelections = false;
+ if (this._state === L.Map.TouchGesture.GRAPHIC) {
+ this._map._docLayer._graphicMarker._onDragEnd(e.srcEvent);
+ } else if (this._state === L.Map.TouchGesture.CURSOR) {
this._map._docLayer._postMouseEvent('buttonup', mousePos.x, mousePos.y, 1, 1, 0);
} else {
this._map.dragging._draggable._onUp(this._constructFakeEvent(point, 'mouseup'));
commit c72e68154f5a37adad65004b7520e0da2538c330
Author: Marco Cecchetti <mrcekets at gmail.com>
AuthorDate: Fri Jun 28 10:37:19 2019 +0200
Commit: Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Mon Jul 15 11:31:13 2019 +0200
loleaflet: mobile enable tripletap for opening links
Change-Id: I9bcf7dfda7984b51f7be4c195496a892046077bc
Reviewed-on: https://gerrit.libreoffice.org/75618
Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>
Tested-by: Tomaž Vajngerl <quikee at gmail.com>
diff --git a/loleaflet/src/map/handler/Map.TouchGesture.js b/loleaflet/src/map/handler/Map.TouchGesture.js
index 5553f8865..3acf95dc8 100644
--- a/loleaflet/src/map/handler/Map.TouchGesture.js
+++ b/loleaflet/src/map/handler/Map.TouchGesture.js
@@ -25,6 +25,12 @@ L.Map.TouchGesture = L.Handler.extend({
enable: true
});
+ var singleTap = this._hammer.get('tap');
+ var doubleTap = this._hammer.get('doubletap');
+ var tripleTap = new Hammer.Tap({event: 'tripletap', taps: 3 });
+ this._hammer.add(tripleTap);
+ tripleTap.recognizeWith([doubleTap, singleTap]);
+
if (L.Browser.touch) {
L.DomEvent.on(this._map._mapPane, 'touchstart touchmove touchend touchcancel', L.DomEvent.preventDefault);
}
@@ -68,6 +74,7 @@ L.Map.TouchGesture = L.Handler.extend({
this._hammer.on('panend', L.bind(this._onPanEnd, this));
this._hammer.on('pinchstart pinchmove', L.bind(this._onPinch, this));
this._hammer.on('pinchend', L.bind(this._onPinchEnd, this));
+ this._hammer.on('tripletap', L.bind(this._onTripleTap, this));
this._map.on('updatepermission', this._onPermission, this);
this._onPermission({perm: this._map._permission});
},
@@ -81,6 +88,7 @@ L.Map.TouchGesture = L.Handler.extend({
this._hammer.off('pinchstart pinchmove', L.bind(this._onPinch, this));
this._hammer.off('pinchend', L.bind(this._onPinchEnd, this));
this._hammer.off('doubletap', L.bind(this._onDoubleTap, this));
+ this._hammer.off('tripletap', L.bind(this._onTripleTap, this));
this._map.off('updatepermission', this._onPermission, this);
},
@@ -149,6 +157,17 @@ L.Map.TouchGesture = L.Handler.extend({
this._map._docLayer._postMouseEvent('buttonup', mousePos.x, mousePos.y, 2, 1, 0);
},
+ _onTripleTap: function (e) {
+ var point = e.pointers[0],
+ containerPoint = this._map.mouseEventToContainerPoint(point),
+ layerPoint = this._map.containerPointToLayerPoint(containerPoint),
+ latlng = this._map.layerPointToLatLng(layerPoint),
+ mousePos = this._map._docLayer._latLngToTwips(latlng);
+
+ this._map._docLayer._postMouseEvent('buttondown', mousePos.x, mousePos.y, 1, 1, 8192);
+ this._map._docLayer._postMouseEvent('buttonup', mousePos.x, mousePos.y, 1, 1, 8192);
+ },
+
_onPanStart: function (e) {
var point = e.pointers[0],
containerPoint = this._map.mouseEventToContainerPoint(point),
commit 02be8f962d91b71bee8a705f5f80317b3327ed72
Author: Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Wed Jun 26 15:51:04 2019 +0200
Commit: Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Mon Jul 15 11:31:03 2019 +0200
Increase selectable cell area
Change-Id: If9ca302253369bfa5708097106507e8f3d8d398b
Reviewed-on: https://gerrit.libreoffice.org/75617
Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>
Tested-by: Tomaž Vajngerl <quikee at gmail.com>
diff --git a/loleaflet/src/geo/LatLngBounds.js b/loleaflet/src/geo/LatLngBounds.js
index 72ebe646d..e6f7396a2 100644
--- a/loleaflet/src/geo/LatLngBounds.js
+++ b/loleaflet/src/geo/LatLngBounds.js
@@ -60,6 +60,17 @@ L.LatLngBounds.prototype = {
new L.LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer));
},
+ // extend the bounds by a percentage
+ padVertically: function (bufferRatio) { // (Number) -> LatLngBounds
+ var sw = this._southWest,
+ ne = this._northEast,
+ heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio;
+
+ return new L.LatLngBounds(
+ new L.LatLng(sw.lat - heightBuffer, sw.lng),
+ new L.LatLng(ne.lat + heightBuffer, ne.lng));
+ },
+
getCenter: function () { // -> LatLng
return new L.LatLng(
(this._southWest.lat + this._northEast.lat) / 2,
diff --git a/loleaflet/src/map/handler/Map.TouchGesture.js b/loleaflet/src/map/handler/Map.TouchGesture.js
index 0ae55b59b..5553f8865 100644
--- a/loleaflet/src/map/handler/Map.TouchGesture.js
+++ b/loleaflet/src/map/handler/Map.TouchGesture.js
@@ -156,8 +156,36 @@ L.Map.TouchGesture = L.Handler.extend({
latlng = this._map.layerPointToLatLng(layerPoint),
mousePos = this._map._docLayer._latLngToTwips(latlng);
- if (this._map._docLayer._cellCursor && this._map._docLayer._cellCursor.contains(latlng)) {
+ var originalCellCursor = this._map._docLayer._cellCursor;
+ var increaseRatio = 0.40;
+ var increasedCellCursor = null;
+ if (originalCellCursor) {
+ increasedCellCursor = originalCellCursor.padVertically(increaseRatio);
+ }
+
+ if (increasedCellCursor && increasedCellCursor.contains(latlng)) {
this._cellSelections = true;
+
+ if (!originalCellCursor.contains(latlng)) {
+ var lat = latlng.lat;
+ var lng = latlng.lng;
+
+ var sw = originalCellCursor._southWest,
+ ne = originalCellCursor._northEast;
+ var heightBuffer = Math.abs(sw.lat - ne.lat) * increaseRatio;
+
+ if (lat < originalCellCursor.getSouthWest().lat) {
+ lat = lat + heightBuffer;
+ }
+
+ if (lat > originalCellCursor.getNorthEast().lat) {
+ lat = lat - heightBuffer;
+ }
+
+ latlng = new L.LatLng(lat, lng);
+ mousePos = this._map._docLayer._latLngToTwips(latlng);
+ }
+
this._map._docLayer._postMouseEvent('buttondown', mousePos.x, mousePos.y, 1, 1, 0);
} else {
this._map.dragging._draggable._onDown(this._constructFakeEvent(point, 'mousedown'));
More information about the Libreoffice-commits
mailing list