[Libreoffice-commits] online.git: loleaflet/src
mert (via logerrit)
logerrit at kemper.freedesktop.org
Mon Mar 16 14:58:15 UTC 2020
loleaflet/src/control/Control.Toolbar.js | 6 +---
loleaflet/src/layer/tile/TileLayer.js | 33 +++++++++++++++-----------
loleaflet/src/map/handler/Map.TouchGesture.js | 6 ++--
3 files changed, 25 insertions(+), 20 deletions(-)
New commits:
commit 2462bf7a19daa56fe2fea9681587c22e6503c360
Author: mert <mert.tumer at collabora.com>
AuthorDate: Wed Feb 26 16:58:30 2020 +0300
Commit: Andras Timar <andras.timar at collabora.com>
CommitDate: Mon Mar 16 15:57:57 2020 +0100
hyperlink popup clean up
hyperlink popups shouldnt contain href for links
also we shouldnt show popup for internal links
core must handle it
Change-Id: Ice5535890a6c45cea7a3d9f70b21ad5f9e66f2eb
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89550
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Reviewed-by: Andras Timar <andras.timar at collabora.com>
diff --git a/loleaflet/src/control/Control.Toolbar.js b/loleaflet/src/control/Control.Toolbar.js
index 9e8d87d8c..79d392563 100644
--- a/loleaflet/src/control/Control.Toolbar.js
+++ b/loleaflet/src/control/Control.Toolbar.js
@@ -2626,10 +2626,8 @@ function setupToolbar(e) {
map._docLayer._twipsToLatLng(bottomRightTwips, map.getZoom()));
//click pos tweak
cellCursor._northEast.lng = cellCursor._southWest.lng;
- map.hyperlinkPopup = new L.Popup({className: 'hyperlink-popup', closeButton: false, closeOnClick: false})
- .setContent('<a href="' + e.url + '" target="_blank">' + e.url + '</a>')
- .setLatLng(cellCursor._northEast)
- .openOn(map);
+ map._docLayer._closeURLPopUp();
+ map._docLayer._showURLPopUp(cellCursor._northEast, e.url);
} else {
map.fire('warn', {url: e.url, map: map, cmd: 'openlink'});
}
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 52660885a..d302dccc4 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -1112,6 +1112,21 @@ L.TileLayer = L.GridLayer.extend({
}
},
+ _showURLPopUp: function(position, url) {
+ // # for internal links
+ if (!url.startsWith('#')) {
+ this._map.hyperlinkPopup = new L.Popup({className: 'hyperlink-popup', closeButton: false, closeOnClick: false})
+ .setContent('<div id="hyperlinkpopup" style="color: #000099; text-decoration: underline;">'+url+'</div>')
+ .setLatLng(position)
+ .openOn(this._map);
+ }
+ },
+
+ _closeURLPopUp: function() {
+ this._map.closePopup(this._map.hyperlinkPopup);
+ this._map.hyperlinkPopup = null;
+ },
+
_onHyperlinkClickedMsg: function (textMsg) {
var link = null;
var coords = null;
@@ -1148,13 +1163,9 @@ L.TileLayer = L.GridLayer.extend({
this._map.lastActionByUser = false;
this._map.hyperlinkUnderCursor = obj.hyperlink;
- this._map.closePopup(this._map.hyperlinkPopup);
- this._map.hyperlinkPopup = null;
+ this._closeURLPopUp();
if (obj.hyperlink && obj.hyperlink.link) {
- this._map.hyperlinkPopup = new L.Popup({className: 'hyperlink-popup', closeButton: false, closeOnClick: false})
- .setContent('<a href="' + obj.hyperlink.link + '" target="_blank">' + obj.hyperlink.link + '</a>')
- .setLatLng(cursorPos)
- .openOn(this._map);
+ this._showURLPopUp(cursorPos, obj.hyperlink.link);
}
if (!this._map.editorHasFocus() && (modifierViewId === this._viewId) && (this._map._permission === 'edit')) {
@@ -2915,19 +2926,15 @@ L.TileLayer = L.GridLayer.extend({
targetURL = targetURL.split('"').join('');
targetURL = this._map.makeURLFromStr(targetURL);
- this._map.closePopup(this._map.hyperlinkPopup);
- this._map.hyperlinkPopup = null;
+ this._closeURLPopUp();
if (targetURL) {
- this._map.hyperlinkPopup = new L.Popup({className: 'hyperlink-popup', closeButton: false, closeOnClick: false})
- .setContent('<a href="' + targetURL + '" target="_blank">' + targetURL + '</a>')
- .setLatLng(this._cellCursorMarker._bounds._northEast)
- .openOn(this._map);
+ this._showURLPopUp(this._cellCursorMarker._bounds._northEast, targetURL);
}
}
else if (this._map.hyperlinkPopup)
{
- this._map.closePopup(this._map.hyperlinkPopup);
+ this._closeURLPopUp();
}
},
diff --git a/loleaflet/src/map/handler/Map.TouchGesture.js b/loleaflet/src/map/handler/Map.TouchGesture.js
index 1fc7479c6..20143958f 100644
--- a/loleaflet/src/map/handler/Map.TouchGesture.js
+++ b/loleaflet/src/map/handler/Map.TouchGesture.js
@@ -326,9 +326,9 @@ L.Map.TouchGesture = L.Handler.extend({
this._toolbar.remove();
// clicked a hyperlink popup - not really designed for this.
- if (this._map.hyperlinkPopup && e.target &&
- this._map.hyperlinkPopup._contentNode == e.target.parentNode)
- this._map.fire('hyperlinkclicked', {url: e.target.href});
+ if (this._map.hyperlinkPopup && e.target && e.target.id === 'hyperlinkpopup' &&
+ this._map.hyperlinkPopup._contentNode == e.target.parentNode)
+ this._map.fire('hyperlinkclicked', {url: e.target.innerHTML});
this._map.fire('closepopups');
this._map.fire('closemobilewizard');
More information about the Libreoffice-commits
mailing list