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

Pranav Kant pranavk at collabora.com
Mon Apr 11 10:09:16 UTC 2016


 loleaflet/src/map/Map.js                  |    6 ++++--
 loleaflet/src/map/handler/Map.Keyboard.js |    7 ++++++-
 2 files changed, 10 insertions(+), 3 deletions(-)

New commits:
commit ef2638298a3fe75ffd34fa82330a7e775090918b
Author: Pranav Kant <pranavk at collabora.com>
Date:   Mon Apr 11 12:39:21 2016 +0530

    loleaflet: listen to composition events
    
    Treat 'compositionend' event as 'keypress' event with composited
    data.
    
    Change-Id: Ia1d35e3ce2c583259dc6b6179741050ed173fe64

diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index a1a768d..c01b430 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -671,7 +671,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 cut paste keydown keypress keyup', this._handleDOMEvent, this);
+		L.DomEvent[onOff](this._textArea, 'copy cut paste keydown keypress keyup compositionend', this._handleDOMEvent, this);
 
 		if (this.options.trackResize && this._resizeDetector.contentWindow) {
 			L.DomEvent[onOff](this._resizeDetector.contentWindow, 'resize', this._onResize, this);
@@ -788,7 +788,9 @@ L.Map = L.Evented.extend({
 		var data = {
 			originalEvent: e
 		};
-		if (e.type !== 'keypress' && e.type !== 'keyup' && e.type !== 'keydown' && e.type !== 'copy' && e.type !== 'cut' && e.type !== 'paste') {
+		if (e.type !== 'keypress' && e.type !== 'keyup' && e.type !== 'keydown' &&
+			e.type !== 'copy' && e.type !== 'cut' && e.type !== 'paste' &&
+			e.type !== 'compositionend') {
 			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 b72c246..d6138b2 100644
--- a/loleaflet/src/map/handler/Map.Keyboard.js
+++ b/loleaflet/src/map/handler/Map.Keyboard.js
@@ -170,11 +170,13 @@ L.Map.Keyboard = L.Handler.extend({
 
 		this._map.on('mousedown', this._onMouseDown, this);
 		this._map.on('keydown keyup keypress', this._onKeyDown, this);
+		this._map.on('compositionend', this._onKeyDown, this);
 	},
 
 	removeHooks: function () {
 		this._map.on('mousedown', this._onMouseDown, this);
 		this._map.off('keydown keyup keypress', this._onKeyDown, this);
+		this._map.off('compositionend', this._onKeyDown, this);
 	},
 
 	_setPanOffset: function (pan) {
@@ -257,6 +259,9 @@ L.Map.Keyboard = L.Handler.extend({
 
 		var charCode = e.originalEvent.charCode;
 		var keyCode = e.originalEvent.keyCode;
+		if (e.type === 'compositionend') {
+			charCode = keyCode = e.originalEvent.data.charCodeAt();
+		}
 		var unoKeyCode = this._toUNOKeyCode(keyCode);
 
 		if (this.modifier) {
@@ -273,7 +278,7 @@ L.Map.Keyboard = L.Handler.extend({
 			if (e.type === 'keydown' && this.handleOnKeyDown[keyCode] && charCode === 0) {
 				docLayer._postKeyboardEvent('input', charCode, unoKeyCode);
 			}
-			else if (e.type === 'keypress' &&
+			else if ((e.type === 'keypress' || e.type === 'compositionend') &&
 				(!this.handleOnKeyDown[keyCode] || charCode !== 0)) {
 				if (charCode === keyCode && charCode !== 13) {
 					// Chrome sets keyCode = charCode for printable keys


More information about the Libreoffice-commits mailing list