loleaflet/src/layer/tile/TileLayer.js     |   10 ++++++++++
 loleaflet/src/map/Map.js                  |    4 ++--
 loleaflet/src/map/handler/Map.Keyboard.js |   10 ++++++----
 3 files changed, 18 insertions(+), 6 deletions(-)

New commits:
commit e11e112411ee600e6bdd3da009b0d8e870d0a418
Author: Jan Holesovsky <[email protected]>
Date:   Thu Jan 21 10:53:37 2016 +0100

    loleaflet: Implement the 'cut' functionality.

diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index 16106ff..dcef8c7 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -124,6 +124,7 @@ L.TileLayer = L.GridLayer.extend({
                map.on('drag resize zoomend', this._updateScrollOffset, this);
 
                map.on('copy', this._onCopy, this);
+               map.on('cut', this._onCut, this);
                map.on('paste', this._onPaste, this);
                map.on('dragover', this._onDragOver, this);
                map.on('drop', this._onDrop, this);
@@ -995,6 +996,15 @@ L.TileLayer = L.GridLayer.extend({
                }
        },
 
+       _onCut: function (e) {
+               e = e.originalEvent;
+               e.preventDefault();
+               if (this._selectionTextContent) {
+                       e.clipboardData.setData('text/plain', 
this._selectionTextContent);
+                       this._map._socket.sendMessage('uno .uno:Cut');
+               }
+       },
+
        _onPaste: function (e) {
                e = e.originalEvent;
                e.preventDefault();
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index e5749f6..a2f9e06 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -600,7 +600,7 @@ L.Map = L.Evented.extend({
                L.DomEvent[onOff](this._container, 'click dblclick mousedown 
mouseup ' +
                        'mouseover mouseout mousemove contextmenu dragover drop 
' +
                        'keydown keypress keyup trplclick qdrplclick', 
this._handleDOMEvent, this);
-               L.DomEvent[onOff](this._textArea, 'copy paste keydown keypress 
keyup', this._handleDOMEvent, this);
+               L.DomEvent[onOff](this._textArea, 'copy cut paste keydown 
keypress keyup', this._handleDOMEvent, this);
 
                if (this.options.trackResize && 
this._resizeDetector.contentWindow) {
                        L.DomEvent[onOff](this._resizeDetector.contentWindow, 
'resize', this._onResize, this);
@@ -653,7 +653,7 @@ L.Map = L.Evented.extend({
                var data = {
                        originalEvent: e
                };
-               if (e.type !== 'keypress' && e.type !== 'keyup' && e.type !== 
'keydown' && e.type !== 'copy' && e.type !== 'paste') {
+               if (e.type !== 'keypress' && e.type !== 'keyup' && e.type !== 
'keydown' && e.type !== 'copy' && e.type !== 'cut' && e.type !== 'paste') {
                        data.containerPoint = target instanceof L.Marker ?
                                        
this.latLngToContainerPoint(target.getLatLng()) : 
this.mouseEventToContainerPoint(e);
                        data.layerPoint = 
this.containerPointToLayerPoint(data.containerPoint);
diff --git a/loleaflet/src/map/handler/Map.Keyboard.js 
b/loleaflet/src/map/handler/Map.Keyboard.js
index cac51b9..956b118 100644
--- a/loleaflet/src/map/handler/Map.Keyboard.js
+++ b/loleaflet/src/map/handler/Map.Keyboard.js
@@ -321,12 +321,13 @@ L.Map.Keyboard = L.Handler.extend({
        },
 
        _handleCtrlCommand: function (e) {
-               if (e.type !== 'keydown' && e.originalEvent.key !== 'c' && 
e.originalEvent.key !== 'v') {
+               if (e.type !== 'keydown' && e.originalEvent.key !== 'c' && 
e.originalEvent.key !== 'v' && e.originalEvent.key !== 'x') {
                        e.originalEvent.preventDefault();
                        return true;
                }
 
-               if (e.originalEvent.keyCode !== 67 && e.originalEvent.keyCode 
!== 86 && e.originalEvent.key !== 'c' && e.originalEvent.key !== 'v') {
+               if (e.originalEvent.keyCode !== 67 && e.originalEvent.keyCode 
!== 86 && e.originalEvent.keyCode !== 88 &&
+                               e.originalEvent.key !== 'c' && 
e.originalEvent.key !== 'v' && e.originalEvent.key !== 'x') {
                        // not copy or paste
                        e.originalEvent.preventDefault();
                }
@@ -376,7 +377,8 @@ L.Map.Keyboard = L.Handler.extend({
                                }
                                return false;
                        case 67: // c
-                               // we prepare for a copy event
+                       case 88: // x
+                               // we prepare for a copy or cut event
                                this._map._docLayer._textArea.value = 'dummy 
text';
                                this._map._docLayer._textArea.focus();
                                this._map._docLayer._textArea.select();
@@ -396,7 +398,7 @@ L.Map.Keyboard = L.Handler.extend({
                                this._map._socket.sendMessage('uno 
.uno:SuperScript');
                                return true;
                }
-               if (e.type === 'keypress' && e.originalEvent.ctrlKey && 
(e.originalEvent.key === 'c' || e.originalEvent.key === 'v')) {
+               if (e.type === 'keypress' && e.originalEvent.ctrlKey && 
(e.originalEvent.key === 'c' || e.originalEvent.key === 'v' || 
e.originalEvent.key === 'x')) {
                        // need to handle this separately for Firefox
                        return true;
                }
_______________________________________________
Libreoffice-commits mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to