loleaflet/src/layer/marker/Cursor.js  |   34 +---------------------------------
 loleaflet/src/layer/tile/TileLayer.js |   28 ++++++++++++++++------------
 loleaflet/src/map/Map.js              |   16 +++++++++++++---
 3 files changed, 30 insertions(+), 48 deletions(-)

New commits:
commit 1c1880093c7c4bc4de16526c89750d0a6ca2dec8
Author: Pranav Kant <pran...@collabora.co.uk>
Date:   Fri Mar 30 00:47:08 2018 +0530

    Revert everything related to putting clipboard inside cursor-cont.
    
    Revert "Only create clipboard for one cursor"
    This reverts commit 98b53ae956782ce7366a2d4b29e80ce31b748058.
    
    Revert "Fix for incorrect map positioning"
    This reverts commit 950b60719abefeca07c65add6dda2f7ae0aeb.
    
    Revert "Move the clipboard-container directly into the cursor."
    This reverts commit e293b7faeed12b7a71786ded970bebd4d998c47b.
    
    Change-Id: Ie5ebcc7a645f6ef1cdbc9fd90bcdef22de54df95
    Reviewed-on: https://gerrit.libreoffice.org/52131
    Reviewed-by: Jan Holesovsky <ke...@collabora.com>
    Tested-by: Jan Holesovsky <ke...@collabora.com>

diff --git a/loleaflet/src/layer/marker/Cursor.js 
b/loleaflet/src/layer/marker/Cursor.js
index c370aa13e..792a13485 100644
--- a/loleaflet/src/layer/marker/Cursor.js
+++ b/loleaflet/src/layer/marker/Cursor.js
@@ -16,24 +16,13 @@ L.Cursor = L.Layer.extend({
                this._initLayout();
        },
 
-       onAdd: function (map) {
-               this._map = map;
-
+       onAdd: function () {
                if (!this._container) {
                        this._initLayout();
                }
 
                this.update();
                this.getPane().appendChild(this._container);
-
-               if (this._textArea && !this._map._textArea) {
-                       this._map._textArea = this._textArea;
-
-                       L.DomEvent['off'](this._textArea, 'copy cut paste 
keydown keypress keyup compositionstart compositionupdate compositionend 
textInput', this._map._handleDOMEvent, this._map);
-                       L.DomEvent['on'](this._textArea, 'copy cut paste 
keydown keypress keyup compositionstart compositionupdate compositionend 
textInput', this._map._handleDOMEvent, this._map);
-
-                       this._textArea.focus();
-               }
        },
 
        onRemove: function () {
@@ -75,16 +64,6 @@ L.Cursor = L.Layer.extend({
                }
        },
 
-       show: function() {
-               L.DomUtil.setStyle(this._container, 'visibility', 'visible');
-               if (this._textArea)
-                       this._textArea.focus();
-       },
-
-       hide: function() {
-               L.DomUtil.setStyle(this._container, 'visibility', 'hidden');
-       },
-
        showCursorHeader: function() {
                if (this._cursorHeader) {
                        L.DomUtil.setStyle(this._cursorHeader, 'visibility', 
'visible');
@@ -121,17 +100,6 @@ L.Cursor = L.Layer.extend({
                L.DomEvent
                        .disableClickPropagation(this._cursor)
                        .disableScrollPropagation(this._container);
-
-               if (this.options.clipboard) {
-                       var textAreaContainer = L.DomUtil.create('div', 
'clipboard-container', this._container);
-                       textAreaContainer.id = 'doc-clipboard-container';
-                       this._textArea = L.DomUtil.create('input', 'clipboard', 
textAreaContainer);
-                       this._textArea.setAttribute('type', 'text');
-                       this._textArea.setAttribute('autocorrect', 'off');
-                       this._textArea.setAttribute('autocapitalize', 'off');
-                       this._textArea.setAttribute('autocomplete', 'off');
-                       this._textArea.setAttribute('spellcheck', 'false');
-               }
        },
 
        _setPos: function (pos) {
diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index 6b79a6429..de9351666 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -286,6 +286,8 @@ L.TileLayer = L.GridLayer.extend({
                for (var key in this._selectionHandles) {
                        this._selectionHandles[key].on('drag dragend', 
this._onSelectionHandleDrag, this);
                }
+               this._textArea = map._textArea;
+               this._textArea.focus();
 
                map.setPermission(this.options.permission);
 
@@ -1446,18 +1448,20 @@ L.TileLayer = L.GridLayer.extend({
                        var cursorPos = this._visibleCursor.getNorthWest();
 
                        if (!this._cursorMarker) {
-                               this._cursorMarker = L.cursor(cursorPos, 
pixBounds.getSize().multiplyBy(this._map.getZoomScale(this._map.getZoom())), 
{blink: true, clipboard: true});
-                               this._map.addLayer(this._cursorMarker);
-
-                               this._textArea = this._cursorMarker._textArea;
+                               this._cursorMarker = L.cursor(cursorPos, 
pixBounds.getSize().multiplyBy(this._map.getZoomScale(this._map.getZoom())), 
{blink: true});
                        }
                        else {
-                               this._cursorMarker.show();
                                this._cursorMarker.setLatLng(cursorPos, 
pixBounds.getSize().multiplyBy(this._map.getZoomScale(this._map.getZoom())));
                        }
+                       this._map.addLayer(this._cursorMarker);
+
+                       // move the hidden input field with the cursor
+                       var clipContainer = 
L.DomUtil.get('doc-clipboard-container');
+                       var pos = 
this._map.latLngToContainerPoint(L.latLng(this._visibleCursor.getCenter())).round();
+                       L.DomUtil.setPosition(clipContainer, pos);
                }
                else if (this._cursorMarker) {
-                       this._cursorMarker.hide();
+                       this._map.removeLayer(this._cursorMarker);
                        this._isCursorOverlayVisible = false;
                }
        },
@@ -1877,9 +1881,9 @@ L.TileLayer = L.GridLayer.extend({
        _onCopy: function (e) {
                e = e.originalEvent;
                e.preventDefault();
-               if (this._textArea.value !== '') {
-                       L.Compatibility.clipboardSet(e, this._textArea.value);
-                       this._textArea.value = '';
+               if (this._map._docLayer._textArea.value !== '') {
+                       L.Compatibility.clipboardSet(e, 
this._map._docLayer._textArea.value);
+                       this._map._docLayer._textArea.value = '';
                } else if (this._selectionTextContent) {
                        L.Compatibility.clipboardSet(e, 
this._selectionTextContent);
 
@@ -1893,9 +1897,9 @@ L.TileLayer = L.GridLayer.extend({
        _onCut: function (e) {
                e = e.originalEvent;
                e.preventDefault();
-               if (this._textArea.value !== '') {
-                       L.Compatibility.clipboardSet(e, this._textArea.value);
-                       this._textArea.value = '';
+               if (this._map._docLayer._textArea.value !== '') {
+                       L.Compatibility.clipboardSet(e, 
this._map._docLayer._textArea.value);
+                       this._map._docLayer._textArea.value = '';
                } else if (this._selectionTextContent) {
                        L.Compatibility.clipboardSet(e, 
this._selectionTextContent);
 
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index cf1fb7216..7cbca20a4 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -662,9 +662,9 @@ L.Map = L.Evented.extend({
 
        focus: function () {
                console.debug('focus:');
-               if (this._textArea && document.activeElement !== 
this._textArea) {
+               if (this._docLayer && document.activeElement !== 
this._docLayer._textArea) {
                        console.debug('focus: focussing');
-                       this._textArea.focus();
+                       this._docLayer._textArea.focus();
                }
        },
 
@@ -692,6 +692,14 @@ L.Map = L.Evented.extend({
                        throw new Error('Map container is already 
initialized.');
                }
 
+               var textAreaContainer = L.DomUtil.create('div', 
'clipboard-container', container.parentElement);
+               textAreaContainer.id = 'doc-clipboard-container';
+               this._textArea = L.DomUtil.create('input', 'clipboard', 
textAreaContainer);
+               this._textArea.setAttribute('type', 'text');
+               this._textArea.setAttribute('autocorrect', 'off');
+               this._textArea.setAttribute('autocapitalize', 'off');
+               this._textArea.setAttribute('autocomplete', 'off');
+               this._textArea.setAttribute('spellcheck', 'false');
                this._resizeDetector = L.DomUtil.create('iframe', 
'resize-detector', container);
                this._fileDownloader = L.DomUtil.create('iframe', '', 
container);
                L.DomUtil.setStyle(this._fileDownloader, 'display', 'none');
@@ -821,7 +829,8 @@ L.Map = L.Evented.extend({
 
                L.DomEvent[onOff](this._container, 'click dblclick mousedown 
mouseup ' +
                        'mouseover mouseout mousemove contextmenu dragover drop 
' +
-                       'trplclick qdrplclick', this._handleDOMEvent, this);
+                       'keydown keypress keyup trplclick qdrplclick', 
this._handleDOMEvent, this);
+               L.DomEvent[onOff](this._textArea, 'copy cut paste keydown 
keypress keyup compositionstart compositionupdate compositionend textInput', 
this._handleDOMEvent, this);
 
                if (this.options.trackResize && 
this._resizeDetector.contentWindow) {
                        L.DomEvent[onOff](this._resizeDetector.contentWindow, 
'resize', this._onResize, this);
@@ -1063,6 +1072,7 @@ L.Map = L.Evented.extend({
                // Calling from some other place with no real 'click' event 
doesn't work
                if (type === 'click') {
                        if (this._permission === 'edit') {
+                               this._textArea.blur();
                                this._textArea.focus();
                        }
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to