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