[Libreoffice-commits] online.git: loleaflet/src
mert (via logerrit)
logerrit at kemper.freedesktop.org
Mon Mar 30 19:52:07 UTC 2020
loleaflet/src/control/Toolbar.js | 2 ++
loleaflet/src/layer/tile/TileLayer.js | 7 +++++++
loleaflet/src/map/handler/Map.TouchGesture.js | 6 +++++-
3 files changed, 14 insertions(+), 1 deletion(-)
New commits:
commit c4f9e4bda711489548d8d7610f9dfea61d84ce47
Author: mert <mert.tumer at collabora.com>
AuthorDate: Mon Mar 30 12:03:12 2020 +0300
Commit: Andras Timar <andras.timar at collabora.com>
CommitDate: Mon Mar 30 21:51:48 2020 +0200
mobile: fix hyperlink on selected text
Insert hyperlink dialog does not have the selected text in the Text field.
So when you select something and want to make it a hyperlink,
you have to type the text again.
Also fixed tapping on hyperlink popup changes cursor position making editing
the link unable to edit
Change-Id: I0d00c4cf001de0f297cc2ed7e5b0f8576e1dab01
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/91349
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Reviewed-by: Andras Timar <andras.timar at collabora.com>
diff --git a/loleaflet/src/control/Toolbar.js b/loleaflet/src/control/Toolbar.js
index e6316188a..d1e4bdafd 100644
--- a/loleaflet/src/control/Toolbar.js
+++ b/loleaflet/src/control/Toolbar.js
@@ -442,6 +442,8 @@ L.Map.include({
link = this.hyperlinkUnderCursor.link;
} else if (this._clip && this._clip._selectionType == 'text') {
text = this.extractContent(this._clip._selectionContent);
+ } else if (this._docLayer._selectedTextContent) {
+ text = this.extractContent(this._docLayer._selectedTextContent);
}
vex.dialog.open({
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 6ce377988..5245d085f 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -194,6 +194,7 @@ L.TileLayer = L.GridLayer.extend({
this._editorId = -1;
this._followUser = false;
this._followEditor = false;
+ this._selectedTextContent = '';
},
onAdd: function (map) {
@@ -619,6 +620,9 @@ L.TileLayer = L.GridLayer.extend({
else if (textMsg.startsWith('textselectioncontent:')) {
if (this._map._clip)
this._map._clip.setTextSelectionHTML(textMsg.substr(22));
+ else
+ // hack for ios and android to get selected text into hyperlink insertion dialog
+ this._selectedTextContent = textMsg.substr(22);
}
else if (textMsg.startsWith('textselectionend:')) {
this._onTextSelectionEndMsg(textMsg);
@@ -1991,6 +1995,8 @@ L.TileLayer = L.GridLayer.extend({
this._onUpdateCellCursor();
if (this._map._clip)
this._map._clip.clearSelection();
+ else
+ this._selectedTextContent = '';
},
containsSelection: function (latlng) {
@@ -3081,6 +3087,7 @@ L.TileLayer = L.GridLayer.extend({
else {
this._textSelectionStart = null;
this._textSelectionEnd = null;
+ this._selectedTextContent = '';
for (key in this._selectionHandles) {
this._map.removeLayer(this._selectionHandles[key]);
this._selectionHandles[key].isDragged = false;
diff --git a/loleaflet/src/map/handler/Map.TouchGesture.js b/loleaflet/src/map/handler/Map.TouchGesture.js
index cf0041d53..95c2eb25e 100644
--- a/loleaflet/src/map/handler/Map.TouchGesture.js
+++ b/loleaflet/src/map/handler/Map.TouchGesture.js
@@ -302,8 +302,12 @@ L.Map.TouchGesture = L.Handler.extend({
// clicked a hyperlink popup - not really designed for this.
if (this._map.hyperlinkPopup && e.target &&
- this._map.hyperlinkPopup._contentNode == e.target.parentNode)
+ this._map.hyperlinkPopup._contentNode == e.target.parentNode) {
this._map.fire('hyperlinkclicked', {url: e.target.href});
+ // not forward mouse events to core if the user tap on a hyperlink popup box
+ // for instance on Writer that causes the text cursor to be moved
+ return;
+ }
this._map.fire('closepopups');
this._map.fire('closemobilewizard');
More information about the Libreoffice-commits
mailing list