[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - loleaflet/src

Pranam Lashkari (via logerrit) logerrit at kemper.freedesktop.org
Tue Jul 28 11:28:04 UTC 2020


 loleaflet/src/layer/tile/TileLayer.js |   88 +++++++++++++++++++---------------
 1 file changed, 50 insertions(+), 38 deletions(-)

New commits:
commit ed652b6a25ca613d2155b320db1deec476d96119
Author:     Pranam Lashkari <lpranam at collabora.com>
AuthorDate: Tue Jul 21 13:59:27 2020 +0530
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Tue Jul 28 13:27:45 2020 +0200

    leaflet: fixed selection handler lagging behind
    
    Change-Id: Ic89a6827bac4511a8f9cd9afbcc2594cdc2046f3
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97897
    Tested-by: Jenkins
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Tested-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/99528

diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 7df2df248..c31d2a896 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -1810,6 +1810,7 @@ L.TileLayer = L.GridLayer.extend({
 						this._twipsToLatLng(bottomRightTwips, this._map.getZoom()));
 
 			this._updateScrollOnCellSelection(oldSelection, this._textSelectionEnd);
+			this._updateMarkers();
 		}
 		else {
 			this._textSelectionEnd = null;
@@ -3133,44 +3134,7 @@ L.TileLayer = L.GridLayer.extend({
 					this._isEmptyRectangle(this._textSelectionEnd)) {
 				return;
 			}
-
-			var startPos = this._map.project(this._textSelectionStart.getSouthWest());
-			var endPos = this._map.project(this._textSelectionEnd.getSouthWest());
-			var startMarkerPos = this._map.project(startMarker.getLatLng());
-			if (startMarkerPos.distanceTo(endPos) < startMarkerPos.distanceTo(startPos) && startMarker._icon && endMarker._icon) {
-				// if the start marker is actually closer to the end of the selection
-				// reverse icons and markers
-				L.DomUtil.removeClass(startMarker._icon, 'leaflet-selection-marker-start');
-				L.DomUtil.removeClass(endMarker._icon, 'leaflet-selection-marker-end');
-				L.DomUtil.addClass(startMarker._icon, 'leaflet-selection-marker-end');
-				L.DomUtil.addClass(endMarker._icon, 'leaflet-selection-marker-start');
-				var tmp = startMarker;
-				startMarker = endMarker;
-				endMarker = tmp;
-			}
-			else if (startMarker._icon && endMarker._icon) {
-				// normal markers and normal icons
-				L.DomUtil.removeClass(startMarker._icon, 'leaflet-selection-marker-end');
-				L.DomUtil.removeClass(endMarker._icon, 'leaflet-selection-marker-start');
-				L.DomUtil.addClass(startMarker._icon, 'leaflet-selection-marker-start');
-				L.DomUtil.addClass(endMarker._icon, 'leaflet-selection-marker-end');
-			}
-
-			if (!startMarker.isDragged) {
-				var pos = this._map.project(this._textSelectionStart.getSouthWest());
-				pos = pos.subtract(new L.Point(0, 2));
-				pos = this._map.unproject(pos);
-				startMarker.setLatLng(pos);
-				this._map.addLayer(startMarker);
-			}
-
-			if (!endMarker.isDragged) {
-				pos = this._map.project(this._textSelectionEnd.getSouthEast());
-				pos = pos.subtract(new L.Point(0, 2));
-				pos = this._map.unproject(pos);
-				endMarker.setLatLng(pos);
-				this._map.addLayer(endMarker);
-			}
+			this._updateMarkers();
 		}
 		else {
 			this._textSelectionStart = null;
@@ -3183,6 +3147,54 @@ L.TileLayer = L.GridLayer.extend({
 		}
 	},
 
+	_updateMarkers: function() {
+		var startMarker, endMarker;
+		for (var key in this._selectionHandles) {
+			if (key === 'start') {
+				startMarker = this._selectionHandles[key];
+			}
+			else if (key === 'end') {
+				endMarker = this._selectionHandles[key];
+			}
+		}
+
+		var startPos = this._map.project(this._textSelectionStart.getSouthWest());
+		var endPos = this._map.project(this._textSelectionEnd.getSouthWest());
+		var startMarkerPos = this._map.project(startMarker.getLatLng());
+		if (startMarkerPos.distanceTo(endPos) < startMarkerPos.distanceTo(startPos) && startMarker._icon && endMarker._icon) {
+			// if the start marker is actually closer to the end of the selection
+			// reverse icons and markers
+			L.DomUtil.removeClass(startMarker._icon, 'leaflet-selection-marker-start');
+			L.DomUtil.removeClass(endMarker._icon, 'leaflet-selection-marker-end');
+			L.DomUtil.addClass(startMarker._icon, 'leaflet-selection-marker-end');
+			L.DomUtil.addClass(endMarker._icon, 'leaflet-selection-marker-start');
+			var tmp = startMarker;
+			startMarker = endMarker;
+			endMarker = tmp;
+		}
+		else if (startMarker._icon && endMarker._icon) {
+			// normal markers and normal icons
+			L.DomUtil.removeClass(startMarker._icon, 'leaflet-selection-marker-end');
+			L.DomUtil.removeClass(endMarker._icon, 'leaflet-selection-marker-start');
+			L.DomUtil.addClass(startMarker._icon, 'leaflet-selection-marker-start');
+			L.DomUtil.addClass(endMarker._icon, 'leaflet-selection-marker-end');
+		}
+
+		if (!startMarker.isDragged) {
+			var pos = this._map.project(this._textSelectionStart.getSouthWest());
+			pos = this._map.unproject(pos);
+			startMarker.setLatLng(pos);
+			this._map.addLayer(startMarker);
+		}
+
+		if (!endMarker.isDragged) {
+			pos = this._map.project(this._textSelectionEnd.getSouthEast());
+			pos = this._map.unproject(pos);
+			endMarker.setLatLng(pos);
+			this._map.addLayer(endMarker);
+		}
+	},
+
 	hasGraphicSelection: function() {
 		return (this._graphicSelection !== null &&
 			!this._isEmptyRectangle(this._graphicSelection));


More information about the Libreoffice-commits mailing list