[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-3' - 2 commits - loleaflet/src

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Oct 3 23:06:34 UTC 2018


 loleaflet/src/control/Control.MobileInput.js |   43 ++++++++++++---------------
 1 file changed, 20 insertions(+), 23 deletions(-)

New commits:
commit 6baa59678c34ec1e618ba0a2ac2b74983fbbd858
Author:     Jan Holesovsky <kendy at collabora.com>
AuthorDate: Thu Oct 4 00:53:06 2018 +0200
Commit:     Aron Budea <aron.budea at collabora.com>
CommitDate: Thu Oct 4 01:06:25 2018 +0200

    Cleanup the debugging logging.
    
    Change-Id: I52ba4be4017a1b4d7a2464c078ec2144511f11f7
    Reviewed-on: https://gerrit.libreoffice.org/61338
    Reviewed-by: Aron Budea <aron.budea at collabora.com>
    Tested-by: Aron Budea <aron.budea at collabora.com>

diff --git a/loleaflet/src/control/Control.MobileInput.js b/loleaflet/src/control/Control.MobileInput.js
index 9439f0221..0530cab21 100644
--- a/loleaflet/src/control/Control.MobileInput.js
+++ b/loleaflet/src/control/Control.MobileInput.js
@@ -89,9 +89,6 @@ L.Control.MobileInput = L.Control.extend({
 		    docLayer = this._map._docLayer,
 		    unoKeyCode = handler._toUNOKeyCode(keyCode);
 
-		console.log('onKeyEvent: e.type === ' + e.type);
-		console.log('onKeyEvent: e.keyCode === "' + e.keyCode + '"');
-		console.log('onKeyEvent: e.charCode === "' + e.charCode + '"');
 		this._keyHandled = this._keyHandled || false;
 		if (this._isComposing) {
 			if (keyCode === 229 && charCode === 0) {
@@ -138,8 +135,7 @@ L.Control.MobileInput = L.Control.extend({
 
 	onCompEvents: function (e) {
 		var map = this._map;
-		console.log('onCompEvents: e.type === ' + e.type);
-		console.log('onCompEvents: e.data === "' + e.data + '"');
+
 		if (e.type === 'compositionstart' || e.type === 'compositionupdate') {
 			this._isComposing = true; // we are starting composing with IME
 			this._composingData = e.data; // cache what we have composed so far
@@ -154,9 +150,6 @@ L.Control.MobileInput = L.Control.extend({
 	},
 
 	onTextInput: function (e) {
-		console.log('onTextInput: e.type === ' + e.type);
-		console.log('onTextInput: e.data === "' + e.data + '"');
-
 		if (!this._keyHandled) {
 			this._textData = e.data;
 			this._textArea.value = '';
@@ -166,9 +159,8 @@ L.Control.MobileInput = L.Control.extend({
 	},
 
 	onInput: function (e) {
-		console.log('onInput: e.inputType === ' + e.inputType);
-
 		var backSpace = this._map.keyboard._toUNOKeyCode(8);
+
 		// deferred processing of composition text or normal text; we can get
 		// both in some cases, and based on the input event we need to decide
 		// which one we actually need to use
commit 10bfc4b449577590c4de82cb15d73204be053a3c
Author:     Jan Holesovsky <kendy at collabora.com>
AuthorDate: Thu Oct 4 00:41:34 2018 +0200
Commit:     Aron Budea <aron.budea at collabora.com>
CommitDate: Thu Oct 4 01:06:16 2018 +0200

    android chrome: Make the insertion of . , ! $ and similar chars work.
    
    The trick is that actually the 'onInput' (the 'input') event decides
    what data we should actually use - if those from compose event, or from
    the text input event.
    
    With this, things finally seem to work reasonably well - I am able to
    insert even emoji :-)
    
    Change-Id: I9f19d1e56e4e638cf88b8497abb8eefd24e82cee
    Reviewed-on: https://gerrit.libreoffice.org/61337
    Reviewed-by: Aron Budea <aron.budea at collabora.com>
    Tested-by: Aron Budea <aron.budea at collabora.com>

diff --git a/loleaflet/src/control/Control.MobileInput.js b/loleaflet/src/control/Control.MobileInput.js
index 45920f63a..9439f0221 100644
--- a/loleaflet/src/control/Control.MobileInput.js
+++ b/loleaflet/src/control/Control.MobileInput.js
@@ -143,9 +143,6 @@ L.Control.MobileInput = L.Control.extend({
 		if (e.type === 'compositionstart' || e.type === 'compositionupdate') {
 			this._isComposing = true; // we are starting composing with IME
 			this._composingData = e.data; // cache what we have composed so far
-			if (e.data) {
-				map._docLayer._postCompositionEvent(0, 'input', e.data);
-			}
 		}
 
 		if (e.type === 'compositionend') {
@@ -161,17 +158,7 @@ L.Control.MobileInput = L.Control.extend({
 		console.log('onTextInput: e.data === "' + e.data + '"');
 
 		if (!this._keyHandled) {
-			// Hack for making space in combination with autocompletion text
-			// input work in Chrome on Andorid.
-			//
-			// Chrome (Android) IME triggers keyup/keydown input with
-			// code 229 when hitting space (as with all composiiton events)
-			// with addition to 'textinput' event, in which we only see that
-			// space was entered.
-			var data = e.data;
-			if (data.length == 1 && data[0] === ' ') {
-				map._docLayer._postKeyboardEvent('input', data[0].charCodeAt(), 0);
-			}
+			this._textData = e.data;
 			this._textArea.value = '';
 		}
 
@@ -179,8 +166,25 @@ L.Control.MobileInput = L.Control.extend({
 	},
 
 	onInput: function (e) {
+		console.log('onInput: e.inputType === ' + e.inputType);
+
 		var backSpace = this._map.keyboard._toUNOKeyCode(8);
-		if (e.inputType && e.inputType === 'deleteContentBackward' && this._lastInput !== backSpace) {
+		// deferred processing of composition text or normal text; we can get
+		// both in some cases, and based on the input event we need to decide
+		// which one we actually need to use
+		if (e.inputType === 'insertText') {
+			if (this._textData) {
+				for (var i = 0; i < this._textData.length; ++i) {
+					map._docLayer._postKeyboardEvent('input', this._textData[i].charCodeAt(), 0);
+				}
+			}
+		}
+		else if (e.inputType === 'insertCompositionText') {
+			if (this._composingData) {
+				map._docLayer._postCompositionEvent(0, 'input', this._composingData);
+			}
+		}
+		else if (e.inputType === 'deleteContentBackward' && this._lastInput !== backSpace) {
 			// this means we need to delete the entire interim composition;
 			// let's issue backspace that many times
 			if (this._composingData) {
@@ -189,6 +193,7 @@ L.Control.MobileInput = L.Control.extend({
 				}
 			}
 		}
+
 		L.DomEvent.stopPropagation(e);
 	}
 });


More information about the Libreoffice-commits mailing list