loleaflet/src/control/Ruler.js | 78 ++++++++++++++++++++++++++++++++--------- 1 file changed, 61 insertions(+), 17 deletions(-)
New commits: commit 02505f1e8f4b40063bad66bbefdb892c3152d4e2 Author: Tomaž Vajngerl <[email protected]> AuthorDate: Mon Apr 20 09:53:42 2020 +0200 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Mon Apr 20 12:45:07 2020 +0200 ruler: show context menu on longpress in touch environment Change-Id: I627977b7fc04df93e129bc2967bf966f6534a204 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92549 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Tomaž Vajngerl <[email protected]> diff --git a/loleaflet/src/control/Ruler.js b/loleaflet/src/control/Ruler.js index ea1bd1a01..e4251fd4d 100644 --- a/loleaflet/src/control/Ruler.js +++ b/loleaflet/src/control/Ruler.js @@ -81,6 +81,9 @@ L.Control.Ruler = L.Control.extend({ if (L.Browser.touch) { this._hammer = new Hammer(this._rTSContainer); this._hammer.add(new Hammer.Pan({ threshold: 0, pointers: 0 })); + this._hammer.get('press').set({ + time: 500 + }); this._hammer.on('panstart', function (event) { self._initiateTabstopDrag(event); }); @@ -90,6 +93,9 @@ L.Control.Ruler = L.Control.extend({ this._hammer.on('panend', function (event) { self._endTabstopDrag(event); }); + this._hammer.on('press', function (event) { + self._onTabstopContainerLongPress(event); + }); } return this._rWrapper; }, @@ -512,6 +518,22 @@ L.Control.Ruler = L.Control.extend({ L.DomEvent.off(this._rTSContainer, 'mouseout', this._endTabstopDrag, this); }, + _onTabstopContainerLongPress: function(event) { + var pointX = event.center.x - event.target.getBoundingClientRect().left; + this.currentPositionInTwips = this._map._docLayer._pixelsToTwips({x: pointX, y:0}).x; + + $.contextMenu({ + selector: '.loleaflet-ruler-tabstopcontainer', + className: 'loleaflet-font', + items: { + inserttabstop: { + name: _('Insert tabstop'), + callback: (this._insertTabstop).bind(this) + } + } + }); + }, + _insertTabstop: function() { if (this.currentPositionInTwips != null) { var params = { commit e11202ea49ca479630751c123083502db839451b Author: Tomaž Vajngerl <[email protected]> AuthorDate: Mon Apr 20 09:28:25 2020 +0200 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Mon Apr 20 12:45:01 2020 +0200 ruler: insert tabstop from a context menu (right click) Change-Id: I0699b53a6972b304f358948d49619a5004329eff Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92548 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Tomaž Vajngerl <[email protected]> diff --git a/loleaflet/src/control/Ruler.js b/loleaflet/src/control/Ruler.js index 3b9e52fb2..ea1bd1a01 100644 --- a/loleaflet/src/control/Ruler.js +++ b/loleaflet/src/control/Ruler.js @@ -388,11 +388,7 @@ L.Control.Ruler = L.Control.extend({ _initiateTabstopDrag: function(event) { // console.log('===> _initiateTabstopDrag ' + event.type); - if (event.button !== 0) { - event.stopPropagation(); // prevent handling of the mother event elsewhere - return; - } - + var tabstopContainer = null; var pointX = null; @@ -405,6 +401,28 @@ L.Control.Ruler = L.Control.extend({ pointX = event.layerX; } + if (event.button === 2) { + this.currentPositionInTwips = this._map._docLayer._pixelsToTwips({x: pointX, y:0}).x; + + $.contextMenu({ + selector: '.loleaflet-ruler-tabstopcontainer', + className: 'loleaflet-font', + items: { + inserttabstop: { + name: _('Insert tabstop'), + callback: (this._insertTabstop).bind(this) + } + } + }); + + event.stopPropagation(); + return; + } + else if (event.button !== 0) { + event.stopPropagation(); // prevent handling of the mother event elsewhere + return; + } + // check if we hit any tabstop var tabstop = null; var margin = 10; @@ -423,18 +441,6 @@ L.Control.Ruler = L.Control.extend({ } if (tabstop == null) { - var positionTwip = this._map._docLayer._pixelsToTwips({x: pointX, y:0}).x; - var params = { - Index: { - type : 'int32', - value : -1 - }, - Position: { - type : 'int32', - value : positionTwip - } - }; - this._map.sendUnoCommand('.uno:ChangeTabStop', params); return; } @@ -506,6 +512,22 @@ L.Control.Ruler = L.Control.extend({ L.DomEvent.off(this._rTSContainer, 'mouseout', this._endTabstopDrag, this); }, + _insertTabstop: function() { + if (this.currentPositionInTwips != null) { + var params = { + Index: { + type : 'int32', + value : -1 + }, + Position: { + type : 'int32', + value : this.currentPositionInTwips + } + }; + this._map.sendUnoCommand('.uno:ChangeTabStop', params); + } + }, + }); _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
