loleaflet/src/control/Control.ContextMenu.js | 18 ++++++++++++++++++ loleaflet/src/layer/tile/TileLayer.js | 24 +++++++++++++----------- 2 files changed, 31 insertions(+), 11 deletions(-)
New commits: commit 87c9b30f48b3e8efa9a82f37194fc5216800f3ef Author: Pranav Kant <pran...@collabora.co.uk> Date: Thu Mar 30 18:10:42 2017 +0530 tdf#106842: Prefix 'Internal ' to cut/copy/paste strings ... in DisableCopy mode. Change-Id: Id758d4654fbe129dd16a466050bf51686440909d diff --git a/loleaflet/src/control/Control.ContextMenu.js b/loleaflet/src/control/Control.ContextMenu.js index 54bd078d..73f0d51f 100644 --- a/loleaflet/src/control/Control.ContextMenu.js +++ b/loleaflet/src/control/Control.ContextMenu.js @@ -129,6 +129,21 @@ L.Control.ContextMenu = L.Control.extend({ // Lets use the later for simplicity and to leverage the core translations in online itemName = itemName.replace(itemName.substring('Delete All Comments by '.length), 'This Author'); } + + if (map['wopi'].DisableCopy) { + switch (commandName) { + case 'Cut': + itemName = _('Internal Cut'); + break; + case 'Copy': + itemName = _('Internal Copy'); + break; + case 'Paste': + itemName = _('Internal Paste'); + break; + } + } + contextMenu[item.command] = { name: _(itemName) }; @@ -146,6 +161,9 @@ L.Control.ContextMenu = L.Control.extend({ isLastItemText = true; } else if (item.type === 'menu') { itemName = item.text.replace('~', ''); + if (map['wopi'].DisableCopy && itemName === 'Paste Special') { + itemName = _('Internal Paste Special'); + } var submenu = this._createContextMenuStructure(item); // ignore submenus with all items disabled if (Object.keys(submenu).length === 0) { commit 017fe90af1ee125ead251f19fcb1c99120b8e2bc Author: Pranav Kant <pran...@collabora.co.uk> Date: Thu Mar 30 17:50:27 2017 +0530 loleaflet: Refine copy/pasting in DisableCopy mode We always want internal document copy/paste to work and always want to do a richtext copy/paste whenever possible. Change-Id: I54705293bd34bc284ceff815ebdf556c7ca1587c diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js index 0d5a9451..05a6e504 100644 --- a/loleaflet/src/layer/tile/TileLayer.js +++ b/loleaflet/src/layer/tile/TileLayer.js @@ -1719,8 +1719,9 @@ L.TileLayer = L.GridLayer.extend({ // remember the copied text, for rich copy/paste inside a document this._selectionTextHash = this._selectionTextContent; - this._map._socket.sendMessage('uno .uno:Copy'); } + + this._map._socket.sendMessage('uno .uno:Copy'); }, _onCut: function (e) { @@ -1731,23 +1732,24 @@ L.TileLayer = L.GridLayer.extend({ // remember the copied text, for rich copy/paste inside a document this._selectionTextHash = this._selectionTextContent; - this._map._socket.sendMessage('uno .uno:Cut'); } + + this._map._socket.sendMessage('uno .uno:Cut'); }, _onPaste: function (e) { e = e.originalEvent; e.preventDefault(); var pasteString = L.Compatibility.clipboardGet(e); - if (pasteString) { - if (pasteString === this._selectionTextHash) { - // content of the clipboard did not change, we can do rich - // paste - this._map._socket.sendMessage('uno .uno:Paste'); - } - else { - this._map._socket.sendMessage('paste mimetype=text/plain;charset=utf-8\n' + pasteString); - } + if (pasteString === 'false' || !!pasteString || pasteString === this._selectionTextHash) { + // If there is nothing to paste in clipboard, no harm in + // issuing a .uno:Paste in case there is something internally copied in the document + // or if the content of the clipboard did not change, we surely must do a rich paste + // instead of a normal paste + this._map._socket.sendMessage('uno .uno:Paste'); + } + else { + this._map._socket.sendMessage('paste mimetype=text/plain;charset=utf-8\n' + pasteString); } }, _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits