loleaflet/src/layer/marker/Annotation.js      |    6 +--
 loleaflet/src/map/handler/Map.TouchGesture.js |   45 ++++++++++++++++++++------
 2 files changed, 38 insertions(+), 13 deletions(-)

New commits:
commit 94e461f8248341f9a24de2b2dc77777cc48a755a
Author:     mert <mert.tu...@collabora.com>
AuthorDate: Fri Sep 11 17:05:30 2020 +0300
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Sep 16 09:51:44 2020 +0200

    Fix annotation kebab menu brings up keyboard on mobile
    
    Also fixed other weirdnesses on touch event with
    annotation box. It was sending click events to
    LOK even if we click on annotation box, which is not
    wanted.
    
    Change-Id: Ia43a879c72c22276c482e463fa725ce1c76df911
    Signed-off-by: mert <mert.tu...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/102468
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Andras Timar <andras.ti...@collabora.com>

diff --git a/loleaflet/src/layer/marker/Annotation.js 
b/loleaflet/src/layer/marker/Annotation.js
index b5c7f3069..bcf3ab74d 100644
--- a/loleaflet/src/layer/marker/Annotation.js
+++ b/loleaflet/src/layer/marker/Annotation.js
@@ -203,7 +203,7 @@ L.Annotation = L.Layer.extend({
                var tr = L.DomUtil.create('tr', empty, tbody);
                var tdImg = L.DomUtil.create(tagTd, 'loleaflet-annotation-img', 
tr);
                var tdAuthor = L.DomUtil.create(tagTd, 
'loleaflet-annotation-author', tr);
-               var imgAuthor = L.DomUtil.create('img', 'avatar-img', tdImg);
+               var imgAuthor = L.DomUtil.create('img', 'avatar-img 
loleaflet-annotation-avatar-img', tdImg);
                imgAuthor.setAttribute('src', L.LOUtil.getImageURL('user.svg'));
                imgAuthor.setAttribute('width', this.options.imgSize.x);
                imgAuthor.setAttribute('height', this.options.imgSize.y);
@@ -238,12 +238,12 @@ L.Annotation = L.Layer.extend({
                }
                if (this._data.trackchange) {
                        this._captionNode = L.DomUtil.create(tagDiv, 
'loleaflet-annotation-caption', wrapper);
-                       this._captionText = L.DomUtil.create(tagDiv, empty, 
this._captionNode);
+                       this._captionText = L.DomUtil.create(tagDiv, 
'loleaflet-annotation-caption-text', this._captionNode);
                }
                this._contentNode = L.DomUtil.create(tagDiv, 
'loleaflet-annotation-content loleaflet-dont-break', wrapper);
                this._nodeModify = L.DomUtil.create(tagDiv, classEdit, wrapper);
                this._nodeModifyText = L.DomUtil.create(tagTextArea, 
classTextArea, this._nodeModify);
-               this._contentText = L.DomUtil.create(tagDiv, empty, 
this._contentNode);
+               this._contentText = L.DomUtil.create(tagDiv, 
'loleaflet-annotation-content-text', this._contentNode);
                this._nodeReply = L.DomUtil.create(tagDiv, classEdit, wrapper);
                this._nodeReplyText = L.DomUtil.create(tagTextArea, 
classTextArea, this._nodeReply);
 
diff --git a/loleaflet/src/map/handler/Map.TouchGesture.js 
b/loleaflet/src/map/handler/Map.TouchGesture.js
index 4257c0212..677d15dec 100644
--- a/loleaflet/src/map/handler/Map.TouchGesture.js
+++ b/loleaflet/src/map/handler/Map.TouchGesture.js
@@ -320,20 +320,27 @@ L.Map.TouchGesture = L.Handler.extend({
                }
 
                this._map.fire('closepopups');
-               this._map.fire('editorgotfocus');
 
                var docLayer = this._map._docLayer;
-               // unselect if anything is selected already
-               if (docLayer && docLayer._annotations && 
docLayer._annotations.unselect) {
-                       docLayer._annotations.unselect();
-                       var pointPx = docLayer._twipsToPixels(mousePos);
-                       var bounds = docLayer._annotations.getBounds();
-                       if (bounds && bounds.contains(pointPx)) {
-                               // not forward mouse events to core if the user 
tap on a comment box
-                               // for instance on Writer that causes the text 
cursor to be moved
-                               return;
+               if (docLayer && docLayer._annotations) {
+                       var annotationClicked = false;
+                       if (e.target) {
+                               var className = e.target.className;
+                               if (className && typeof className === 'string') 
{
+                                       if (className.indexOf('annotation') >= 
0) {
+                                               annotationClicked = true;
+                                               return;
+                                       }
+                               }
+                       }
+                       // unselect if anything is selected already
+                       if (!annotationClicked && 
docLayer._annotations.unselect) {
+                               docLayer._annotations.unselect();
                        }
                }
+
+               this._map.fire('editorgotfocus');
+
                this._map._contextMenu._onMouseDown({originalEvent: 
e.srcEvent});
 
                var acceptInput = false; // No keyboard by default.
@@ -378,6 +385,24 @@ L.Map.TouchGesture = L.Handler.extend({
 
                var docLayer = this._map._docLayer;
                if (docLayer) {
+                       if (docLayer._annotations) {
+                               var annotationClicked = false;
+                               if (e.target) {
+                                       var className = e.target.className;
+                                       if (className) {
+                                               if (className && typeof 
className === 'string') {
+                                                       if 
(className.indexOf('annotation') >= 0) {
+                                                               
annotationClicked = true;
+                                                               return;
+                                                       }
+                                               }
+                                       }
+                               }
+                               // unselect if anything is selected already
+                               if (!annotationClicked && 
docLayer._annotations.unselect) {
+                                       docLayer._annotations.unselect();
+                               }
+                       }
                        if (docLayer._docType === 'spreadsheet' && 
!docLayer.hasGraphicSelection()) {
                                // Enter cell-edit mode on double-taping a cell.
                                if (this._map.isPermissionEdit()) {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to