[Libreoffice-commits] online.git: loleaflet/src

Henry Castro hcastro at collabora.com
Thu Jun 25 20:40:07 PDT 2015


 loleaflet/src/layer/tile/TileLayer.js |   19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

New commits:
commit 38133c78866981db21db67130929d7543b9bd57f
Author: Henry Castro <hcastro at collabora.com>
Date:   Thu Jun 25 23:29:58 2015 -0400

    loleaflet: Swap selection handler.
    
    In order to get continuous selection, the handlers are swapped if the
    distance from cursor to handlers cross over.

diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 8d405a2..8dfd007 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -787,6 +787,16 @@ L.TileLayer = L.GridLayer.extend({
 			this._map._bDisableKeyboard = true;
 			this._map.addLayer(this._cursorMarker);
 			this._cursorMarker.setSize(pixBounds.getSize());
+
+			var cursor = this._map.latLngToLayerPoint(this._cursorMarker.getLatLng());
+			var start = this._map.latLngToLayerPoint(this._startMarker.getLatLng());
+			var end = this._map.latLngToLayerPoint(this._endMarker.getLatLng());
+
+			if (Math.abs(start.distanceTo(cursor)) < Math.abs(end.distanceTo(cursor))) {
+				var swap = this._endMarker.getLatLng();
+				this._endMarker.setLatLng(this._startMarker.getLatLng());
+				this._startMarker.setLatLng(swap);
+			}
 		}
 		else if (this._cursorMarker) {
 			this._map._bDisableKeyboard = false;
@@ -848,14 +858,15 @@ L.TileLayer = L.GridLayer.extend({
 	// Update text selection handlers.
 	_onUpdateTextSelection: function () {
 		if (this._selections.getLayers().length !== 0) {
-			if (!this._isEmptyRectangle(this._textSelectionStart) &&
-					this._startMarker.isDragged !== true) {
+			if ( this._startMarker.isDragged === true || this._endMarker.isDragged === true)
+				return;
+
+			if (!this._isEmptyRectangle(this._textSelectionStart)) {
 				this._startMarker.setLatLng(this._textSelectionStart.getSouthWest());
 				this._map.addLayer(this._startMarker);
 			}
 
-			if (!this._isEmptyRectangle(this._textSelectionEnd) &&
-					this._endMarker.isDragged !== true) {
+			if (!this._isEmptyRectangle(this._textSelectionEnd)) {
 				this._endMarker.setLatLng(this._textSelectionEnd.getSouthEast());
 				this._map.addLayer(this._endMarker);
 			}


More information about the Libreoffice-commits mailing list