loleaflet/src/layer/tile/TileLayer.js | 14 ++++++++++++++ loleaflet/src/map/handler/Map.Keyboard.js | 12 ++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-)
New commits: commit e9dbfa395381e942eff2e14f62aab61382b82e8d Author: Pranav Kant <pran...@collabora.co.uk> Date: Fri Nov 25 10:05:49 2016 +0530 tdf#98484: IME support - handle full string in compositions Parse the compositionend event's string, convert each into a char code and pass them individually to server. Change-Id: If79d538ccaebaa29749a5ca48a1f6ed5e0689ed5 diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js index 10160b2..d47a6e5 100644 --- a/loleaflet/src/layer/tile/TileLayer.js +++ b/loleaflet/src/layer/tile/TileLayer.js @@ -1202,6 +1202,20 @@ L.TileLayer = L.GridLayer.extend({ } }, + _postKeyboardEvents: function(type, charcodes, keycodes) { + // Both are arrays + if (typeof(charcodes.length) !== 'number' && typeof(keycodes.length) !== 'number') + return; + + // both have same length + if (charcodes.length !== keycodes.length) + return; + + for (var i = 0; i < charcodes.length; i++) { + this._postKeyboardEvent(type, charcodes[i], keycodes[i]); + } + }, + _postKeyboardEvent: function(type, charcode, keycode) { if (this._docType === 'spreadsheet' && this._prevCellCursor && type === 'input') { diff --git a/loleaflet/src/map/handler/Map.Keyboard.js b/loleaflet/src/map/handler/Map.Keyboard.js index 6e64ae4..e7b638e 100644 --- a/loleaflet/src/map/handler/Map.Keyboard.js +++ b/loleaflet/src/map/handler/Map.Keyboard.js @@ -286,7 +286,10 @@ 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 compCharCodes = []; + for (var i = 0; i < e.originalEvent.data.length; i++) { + compCharCodes.push(e.originalEvent.data[i].charCodeAt()); + } } var unoKeyCode = this._toUNOKeyCode(keyCode); @@ -317,7 +320,12 @@ L.Map.Keyboard = L.Handler.extend({ // key press times will be paired with the invalidation messages docLayer._debugKeypressQueue.push(+new Date()); } - docLayer._postKeyboardEvent('input', charCode, unoKeyCode); + if (e.type === 'compositionend') { + // Set all keycodes to zero + docLayer._postKeyboardEvents('input', compCharCodes, Array.apply(null, Array(compCharCodes.length)).map(Number.prototype.valueOf, 0)); + } else { + docLayer._postKeyboardEvent('input', charCode, unoKeyCode); + } } else if (e.type === 'keyup') { docLayer._postKeyboardEvent('up', charCode, unoKeyCode); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits