loleaflet/src/layer/marker/ClipboardContainer.js |   20 ++++++++++++--
 loleaflet/src/layer/tile/TileLayer.js            |   32 ++++++++++++-----------
 2 files changed, 36 insertions(+), 16 deletions(-)

New commits:
commit 6a70fe02c6db3570dc4c5650fc046a25814c4806
Author:     Henry Castro <hcas...@collabora.com>
AuthorDate: Sun Aug 5 18:30:16 2018 -0400
Commit:     Henry Castro <hcas...@collabora.com>
CommitDate: Wed Aug 8 16:15:39 2018 -0400

    loleaflet: mobile: show the cursor only if clipContainer is focused
    
    Change-Id: I209952df810d23b244e8b963304115fd81e30a81

diff --git a/loleaflet/src/layer/marker/ClipboardContainer.js 
b/loleaflet/src/layer/marker/ClipboardContainer.js
index aa6d42a99..cb7b74a9a 100644
--- a/loleaflet/src/layer/marker/ClipboardContainer.js
+++ b/loleaflet/src/layer/marker/ClipboardContainer.js
@@ -18,7 +18,9 @@ L.ClipboardContainer = L.Layer.extend({
                L.DomEvent.on(this._textArea, 'copy cut paste ' +
                              'keydown keypress keyup ' +
                              'compositionstart compositionupdate 
compositionend textInput',
-                             this._map._handleDOMEvent, this._map);
+                             this._map._handleDOMEvent, this._map)
+                         .on(this._textArea, 'focus', this.onGotFocus, this)
+                         .on(this._textArea, 'blur', this.onLostFocus, this);
        },
 
        onRemove: function () {
@@ -29,10 +31,24 @@ L.ClipboardContainer = L.Layer.extend({
                L.DomEvent.off(this._textArea, 'copy cut paste ' +
                               'keydown keypress keyup ' +
                               'compositionstart compositionupdate 
compositionend textInput',
-                              this._map._handleDOMEvent, this._map);
+                              this._map._handleDOMEvent, this._map)
+                         .off(this._textArea, 'focus', this.onGotFocus, this)
+                         .off(this._textArea, 'blur', this.onLostFocus, this);
+       },
+
+       onGotFocus: function () {
+               this.setLatLng(this._map._docLayer._updateCursorPos());
+       },
+
+       onLostFocus: function () {
+               this._map.removeLayer(this._map._docLayer._cursorMarker);
        },
 
        focus: function(focus) {
+               if (this._map._permission !== 'edit') {
+                       return;
+               }
+
                if (focus === false) {
                        this._textArea.blur();
                } else {
diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index 2d2a25fb6..15292feda 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -1538,6 +1538,22 @@ L.TileLayer = L.GridLayer.extend({
                this._onUpdateCursor();
        },
 
+       _updateCursorPos: function () {
+               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});
+               }
+               else {
+                       this._cursorMarker.setLatLng(cursorPos, 
pixBounds.getSize().multiplyBy(this._map.getZoomScale(this._map.getZoom())));
+               }
+
+               this._map.addLayer(this._cursorMarker);
+               return this._visibleCursor.getNorthWest();
+       },
+
        // Update cursor layer (blinking cursor).
        _onUpdateCursor: function (scroll) {
                var cursorPos = this._visibleCursor.getNorthWest();
@@ -1570,23 +1586,11 @@ L.TileLayer = L.GridLayer.extend({
        // the state of the document (if the falgs are set)
        _updateCursorAndOverlay: function (/*update*/) {
                if (this._map._permission === 'edit'
+               && this._map._clipboardContainer._textArea === 
document.activeElement
                && 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});
-                       }
-                       else {
-                               this._cursorMarker.setLatLng(cursorPos, 
pixBounds.getSize().multiplyBy(this._map.getZoomScale(this._map.getZoom())));
-                       }
-                       this._map.addLayer(this._cursorMarker);
-                       
this._map._clipboardContainer.setLatLng(this._visibleCursor.getNorthWest());
+                       this._updateCursorPos();
                }
                else if (this._cursorMarker) {
                        this._map.removeLayer(this._cursorMarker);
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to