loleaflet/src/layer/tile/TileLayer.js |   35 +++++++++++++++++++++++-----------
 loleaflet/src/map/Map.js              |   22 +++++++++++----------
 2 files changed, 36 insertions(+), 21 deletions(-)

New commits:
commit e3fe9afa9c004af7426e657f826d743340e422e9
Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
Date:   Mon Dec 5 21:58:07 2016 +0100

    don't scroll to the cursor position after focus lose/get
    
    Change-Id: Id017c5ea8c162a71a8b4d8ec47a6d9deb7357fca

diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index aee3833..092d5dd 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -1287,11 +1287,31 @@ L.TileLayer = L.GridLayer.extend({
                        }
                }
 
-               if (this._map._permission === 'edit' && this._isCursorVisible 
&& this._isCursorOverlayVisible
-                               && 
!this._isEmptyRectangle(this._visibleCursor)) {
+               this._updateCursorAndOverlay();
+
+               this.eachView(this._viewCursors, function (item) {
+                       var viewCursorMarker = item.marker;
+                       if (viewCursorMarker) {
+                               
viewCursorMarker.setOpacity(this._map.hasLayer(this._cursorMarker) && 
this._cursorMarker.getLatLng().equals(viewCursorMarker.getLatLng()) ? 0 : 1);
+                       }
+               }, this, true);
+       },
+
+       // enable or disable blinking cursor and  the cursor overlay depending 
on
+       // the state of the document (if the falgs are set)
+       _updateCursorAndOverlay: function (update) {
+               if (this._map._permission === 'edit'
+               && this._isCursorVisible
+               && this._isCursorOverlayVisible
+               && !this._isEmptyRectangle(this._visibleCursor)) {
+
+                       var pixBounds = 
L.bounds(this._map.latLngToLayerPoint(this._visibleCursor.getSouthWest()),
+                                                                        
this._map.latLngToLayerPoint(this._visibleCursor.getNorthEast()));
+
+                       var cursorPos = this._visibleCursor.getNorthWest();
+
                        if (!this._cursorMarker) {
-                               this._cursorMarker = L.cursor(cursorPos, 
pixBounds.getSize().multiplyBy(this._map.getZoomScale(this._map.getZoom())),
-                                       {blink: true});
+                               this._cursorMarker = L.cursor(cursorPos, 
pixBounds.getSize().multiplyBy(this._map.getZoomScale(this._map.getZoom())), 
{blink: true});
                        }
                        else {
                                this._cursorMarker.setLatLng(cursorPos, 
pixBounds.getSize().multiplyBy(this._map.getZoomScale(this._map.getZoom())));
@@ -1302,13 +1322,6 @@ L.TileLayer = L.GridLayer.extend({
                        this._map.removeLayer(this._cursorMarker);
                        this._isCursorOverlayVisible = false;
                }
-
-               this.eachView(this._viewCursors, function (item) {
-                       var viewCursorMarker = item.marker;
-                       if (viewCursorMarker) {
-                               
viewCursorMarker.setOpacity(this._map.hasLayer(this._cursorMarker) && 
this._cursorMarker.getLatLng().equals(viewCursorMarker.getLatLng()) ? 0 : 1);
-                       }
-               }, this, true);
        },
 
        // Update colored non-blinking view cursor
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index 002f990..982664f 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -827,14 +827,16 @@ L.Map = L.Evented.extend({
                if (!this._loaded) { return; }
 
                var doclayer = this._docLayer;
-               if (!doclayer) {
-                       return;
-               }
-               doclayer._isCursorVisibleOnLostFocus = 
doclayer._isCursorOverlayVisible;
+               if (!doclayer) { return; }
+
+               // save state of cursor (blinking marker) and the cursor overlay
+               doclayer._isCursorVisibleOnLostFocus = 
doclayer._isCursorVisible;
                doclayer._isCursorOverlayVisibleOnLostFocus = 
doclayer._isCursorOverlayVisible;
+
+               // if the blinking cursor is visible, disable the overlay when 
we go out of focus
                if (doclayer._isCursorVisible && 
doclayer._isCursorOverlayVisible) {
                        doclayer._isCursorOverlayVisible = false;
-                       doclayer._onUpdateCursor();
+                       doclayer._updateCursorAndOverlay();
                }
 
                this._deactivate();
@@ -844,15 +846,15 @@ L.Map = L.Evented.extend({
                if (!this._loaded) { return; }
 
                var doclayer = this._docLayer;
-               if (doclayer && doclayer._isCursorVisibleOnLostFocus && 
doclayer._isCursorOverlayVisibleOnLostFocus) {
+               if (doclayer) {
                        // we restore the old cursor position by a small delay, 
so that if the user clicks
                        // inside the document we skip to restore it, so that 
the user does not see the cursor
                        // jumping from the old position to the new one
                        setTimeout(function () {
-                               if (doclayer._isCursorOverlayVisible) { return; 
} // user has clicked inside the document
-                               doclayer._isCursorOverlayVisible = 
doclayer._isCursorVisible = true;
-                               doclayer._visibleCursor = 
doclayer._visibleCursorOnLostFocus;
-                               doclayer._onUpdateCursor();
+                               // restore the state that was before focus was 
lost
+                               doclayer._isCursorOverlayVisible = 
doclayer._isCursorOverlayVisibleOnLostFocus;
+                               doclayer._isCursorVisible = 
doclayer._isCursorVisibleOnLostFocus;
+                               doclayer._updateCursorAndOverlay();
                        }, 300);
                }
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to