[Libreoffice-commits] online.git: loleaflet/src

Mihai Varga mihai.varga at collabora.com
Mon Oct 5 10:03:43 PDT 2015


 loleaflet/src/map/handler/Map.Keyboard.js |   64 ++++++++++++++++++++++++++++--
 1 file changed, 60 insertions(+), 4 deletions(-)

New commits:
commit 029fab5d1ccc1d8b2bab5966d8b1725de574bb2d
Author: Mihai Varga <mihai.varga at collabora.com>
Date:   Mon Oct 5 20:02:35 2015 +0300

    loleaflet: some ctrl+key shortcuts #tdf94608

diff --git a/loleaflet/src/map/handler/Map.Keyboard.js b/loleaflet/src/map/handler/Map.Keyboard.js
index 98c722d..93490e4 100644
--- a/loleaflet/src/map/handler/Map.Keyboard.js
+++ b/loleaflet/src/map/handler/Map.Keyboard.js
@@ -187,10 +187,7 @@ L.Map.Keyboard = L.Handler.extend({
 		var alt = e.originalEvent.altKey ? this.keyModifier.alt : 0;
 		this.modifier = shift | ctrl | alt;
 		if (e.originalEvent.ctrlKey) {
-			// we prepare for a copy event
-			docLayer._textArea.value = 'dummy text';
-			docLayer._textArea.focus();
-			docLayer._textArea.select();
+			this._handleCtrlCommand(e);
 			return;
 		}
 
@@ -244,6 +241,65 @@ L.Map.Keyboard = L.Handler.extend({
 			}
 		}
 		L.DomEvent.stopPropagation(e.originalEvent);
+	},
+
+	_handleCtrlCommand: function (e) {
+		if (e.type !== 'keydown') {
+			e.originalEvent.preventDefault();
+			return;
+		};
+
+		switch (e.originalEvent.keyCode) {
+			case 13: // enter
+				L.Socket.sendMessage('uno .uno:InsertPagebreak');
+				break;
+			case 37: // left arrow
+				L.Socket.sendMessage('uno .uno:GoToPrevWord');
+				break;
+			case 39: // right arrow
+				L.Socket.sendMessage('uno .uno:GoToNextWord');
+				break;
+			case 65: // a
+				L.Socket.sendMessage('uno .uno:Selectall');
+				break;
+			case 66: // b
+				L.Socket.sendMessage('uno .uno:Bold');
+				break;
+			case 67: // c
+				// we prepare for a copy event
+				this._map._docLayer._textArea.value = 'dummy text';
+				this._map._docLayer._textArea.focus();
+				this._map._docLayer._textArea.select();
+				break;
+			case 69: // e
+				L.Socket.sendMessage('uno .uno:CenterPara');
+				break;
+			case 73: // i
+				L.Socket.sendMessage('uno .uno:Italic');
+				break;
+			case 74: // j
+				L.Socket.sendMessage('uno .uno:JustifyPara');
+				break;
+			case 76: // l
+				L.Socket.sendMessage('uno .uno:LeftPara');
+				break;
+			case 82: // r
+				L.Socket.sendMessage('uno .uno:RightPara');
+				break;
+			case 85: // u
+				L.Socket.sendMessage('uno .uno:Underline');
+				break;
+			case 90: // z
+				L.Socket.sendMessage('uno .uno:Undo');
+				break;
+			case 189: // -
+				L.Socket.sendMessage('uno .uno:InsertSoftHyphen');
+				break;
+		}
+		if (e.originalEvent.keyCode !== 67 && e.originalEvent.keyCode !== 86) {
+			// not copy or paste
+			e.originalEvent.preventDefault();
+		}
 	}
 });
 


More information about the Libreoffice-commits mailing list