loleaflet/src/layer/AnnotationManager.js |   23 +++++++++++++++++++----
 loleaflet/src/map/Map.js                 |   13 +++++++++----
 2 files changed, 28 insertions(+), 8 deletions(-)

New commits:
commit e3ef5d01afa5773e5562a5e5a30274c0d4ee1761
Author: Pranav Kant <pran...@collabora.co.uk>
Date:   Wed Apr 26 13:15:10 2017 +0530

    loleaflet: Allow mouse clicks to pass through comment/redline selection
    
    Otherwise, it was not possible to use the mouse to click on the text
    beneath the text selection svg layer. This simulates a mouse click on
    the document after selecting the comment.
    
    Change-Id: Ia2717a0a4356f40e31db94b68563abffc87cac37

diff --git a/loleaflet/src/layer/AnnotationManager.js 
b/loleaflet/src/layer/AnnotationManager.js
index eff34d7d..f35c7588 100644
--- a/loleaflet/src/layer/AnnotationManager.js
+++ b/loleaflet/src/layer/AnnotationManager.js
@@ -57,13 +57,21 @@ L.AnnotationManager = L.Class.extend({
                color = viewId >= 0 ? 
L.LOUtil.rgbToHex(this._map.getViewColor(viewId)) : '#43ACE8';
                if (rectangles.length > 0) {
                        comment.textSelected = L.polygon(rectangles, {
-                               interactive: true,
+                               pointerEvents: 'all',
+                               interactive: false,
                                fillColor: color,
                                fillOpacity: 0.25,
                                weight: 2,
                                opacity: 0.25
                        });
-                       comment.textSelected.on('click', function() {
+                       comment.textSelected.on('click', function(e) {
+                               // Simulate a click at this position in the 
document
+                               var latlng = 
this._map.mouseEventToLatLng(e.originalEvent);
+                               var pos = 
this._map._docLayer._latLngToTwips(latlng);
+                               
this._map._docLayer._postMouseEvent('buttondown', pos.x, pos.y, 1, 1, 0);
+                               this._map._docLayer._postMouseEvent('buttonup', 
pos.x, pos.y, 1, 1, 0);
+
+                               // Also select this comment
                                this.selectById(comment.id);
                        }, this);
                }
@@ -88,11 +96,18 @@ L.AnnotationManager = L.Class.extend({
                color = viewId >= 0 ? 
L.LOUtil.rgbToHex(this._map.getViewColor(viewId)) : '#43ACE8';
                if (rectangles.length > 0) {
                        redline.textSelected = L.polygon(rectangles, {
-                               interactive: true,
+                               pointerEvents: 'all',
+                               interactive: false,
                                fillOpacity: 0,
                                opacity: 0
                        });
-                       redline.textSelected.on('click', function() {
+                       redline.textSelected.on('click', function(e) {
+                               // Simulate a click at this position in the 
document
+                               var latlng = 
this._map.mouseEventToLatLng(e.originalEvent);
+                               var pos = 
this._map._docLayer._latLngToTwips(latlng);
+                               
this._map._docLayer._postMouseEvent('buttondown', pos.x, pos.y, 1, 1, 0);
+                               this._map._docLayer._postMouseEvent('buttonup', 
pos.x, pos.y, 1, 1, 0);
+
                                this.selectById(redline.id);
                        }, this);
                }
commit 91421bae3d09ba15a71db3101d21b3b08b5de0d2
Author: Pranav Kant <pran...@collabora.co.uk>
Date:   Wed Apr 26 13:15:03 2017 +0530

    loleaflet: Allow selecting annotations in readonly mode too
    
    Change-Id: I5c58baf95a1cbbb2ffbe756de30e596e2c35e6fb

diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index 3a2ce54d..755d99d0 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -981,11 +981,16 @@ L.Map = L.Evented.extend({
                // For touch devices, to pop-up the keyboard, it is required to 
call
                // .focus() method on hidden input within actual 'click' event 
here
                // Calling from some other place with no real 'click' event 
doesn't work
-               if (type === 'click' && this._permission === 'edit') {
-                       this._textArea.blur();
-                       this._textArea.focus();
-                       if (this._docLayer && this._docLayer._annotations && 
this._docLayer._annotations.unselect)
+               if (type === 'click') {
+                       if (this._permission === 'edit') {
+                               this._textArea.blur();
+                               this._textArea.focus();
+                       }
+
+                       // unselect if anything is selected already
+                       if (this._docLayer && this._docLayer._annotations && 
this._docLayer._annotations.unselect) {
                                this._docLayer._annotations.unselect();
+                       }
                }
 
                // we need to keep track if we have entered/left the map
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to