loleaflet/dist/toolbar/toolbar.js | 51 +++++++++++++++++++++++------- loleaflet/src/control/Toolbar.js | 7 +++- loleaflet/src/map/handler/Map.Keyboard.js | 3 + 3 files changed, 48 insertions(+), 13 deletions(-)
New commits: commit 26d5614b897f68395567e9cfa0d727ef79208b65 Author: Pranav Kant <pran...@collabora.com> Date: Wed Jun 1 13:18:22 2016 +0530 loleaflet: bccu#1777: bccu#1555: formula bar fixes * Use new param DontCommit in .uno:EnterString to not trigger recalculation until enter is pressed. * On pressing 'ESC', reset the current content * Range selection is now possible when formula is entered in * formula bar * Forward 'enter' key events to `map` from formula bar Change-Id: I073eca2fa08520faa9f679b1c986e10805da0ad6 diff --git a/loleaflet/dist/toolbar/toolbar.js b/loleaflet/dist/toolbar/toolbar.js index 58605f6..67f7ee3 100644 --- a/loleaflet/dist/toolbar/toolbar.js +++ b/loleaflet/dist/toolbar/toolbar.js @@ -185,11 +185,19 @@ function onClick(id) { map.cellEnterString(L.DomUtil.get('formulaInput').value); } else if (id === 'cancelformula') { - L.DomUtil.get('formulaInput').value = ''; - map.cellEnterString(L.DomUtil.get('formulaInput').value); + map.sendUnoCommand('.uno:Cancel'); + w2ui['formulabar'].hide('acceptformula', 'cancelformula'); + w2ui['formulabar'].show('sum', 'function'); } else if (id === 'acceptformula') { - map.cellEnterString(L.DomUtil.get('formulaInput').value); + // focus on map, and press enter + map.focus(); + map._docLayer._postKeyboardEvent('input', + map.keyboard.keyCodes.enter, + map.keyboard._toUNOKeyCode(map.keyboard.keyCodes.enter)); + + w2ui['formulabar'].hide('acceptformula', 'cancelformula'); + w2ui['formulabar'].show('sum', 'function'); } else if (id === 'more') { $('#toolbar-up-more').toggle(); @@ -397,7 +405,7 @@ $(function () { {type: 'button', id: 'function', img: 'equal', hint: _('Function')}, {type: 'button', hidden: true, id: 'cancelformula', img: 'cancel', hint: _('Cancel')}, {type: 'button', hidden: true, id: 'acceptformula', img: 'accepttrackedchanges', hint: _('Accept')}, - {type: 'html', id: 'formula', html: '<input id="formulaInput" onkeyup="onFormulaInput()"' + + {type: 'html', id: 'formula', html: '<input id="formulaInput" onkeyup="onFormulaInput(event)"' + 'onblur="onFormulaBarBlur()" onfocus="onFormulaBarFocus()" type=text>'} ], onClick: function (e) { @@ -593,8 +601,23 @@ function onInsertFile() { } } -function onFormulaInput() { - map.cellEnterString(L.DomUtil.get('formulaInput').value); +function onFormulaInput(e) { + // keycode = 13 is 'enter' + if (e.keyCode === 13) { + // formula bar should not have focus anymore + map.focus(); + + // forward the 'enter' keystroke to map to deal with the formula entered + var data = { + originalEvent: e + }; + map.fire('keypress', data); + } else if (e.keyCode === 27) { // 27 = esc key + map.sendUnoCommand('.uno:Cancel'); + map.focus(); + } else { + map.cellEnterString(L.DomUtil.get('formulaInput').value); + } } function onFormulaBarFocus() { @@ -606,11 +629,17 @@ function onFormulaBarFocus() { } function onFormulaBarBlur() { - var formulabar = w2ui.formulabar; - formulabar.show('sum'); - formulabar.show('function'); - formulabar.hide('cancelformula'); - formulabar.hide('acceptformula'); + // The timeout is needed because we want 'click' event on 'cancel', + // 'accept' button to act before we hide these buttons because + // once hidden, click event won't be processed. + // TODO: Some better way to do it ? + setTimeout(function() { + var formulabar = w2ui.formulabar; + formulabar.show('sum'); + formulabar.show('function'); + formulabar.hide('cancelformula'); + formulabar.hide('acceptformula'); + }, 250); } map.on('updatepermission', function () { diff --git a/loleaflet/src/control/Toolbar.js b/loleaflet/src/control/Toolbar.js index aff5e3f..cee4561 100644 --- a/loleaflet/src/control/Toolbar.js +++ b/loleaflet/src/control/Toolbar.js @@ -123,9 +123,14 @@ L.Map.include({ 'StringName': { type: 'string', value: string + }, + 'DontCommit': { + type: 'boolean', + value: true } }; - this._socket.sendMessage('uno .uno:EnterString ' + JSON.stringify(command)); + + this.sendUnoCommand('.uno:EnterString ', command); }, renderFont: function (fontName) { diff --git a/loleaflet/src/map/handler/Map.Keyboard.js b/loleaflet/src/map/handler/Map.Keyboard.js index e316e8e..9202e7a 100644 --- a/loleaflet/src/map/handler/Map.Keyboard.js +++ b/loleaflet/src/map/handler/Map.Keyboard.js @@ -141,7 +141,8 @@ L.Map.Keyboard = L.Handler.extend({ keyCodes: { pageUp: 33, - pageDown: 34 + pageDown: 34, + enter: 13 }, navigationKeyCodes: { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits