loleaflet/src/control/Control.LokDialog.js | 13 ++++++------- loleaflet/src/map/Map.js | 10 ++++++++-- 2 files changed, 14 insertions(+), 9 deletions(-)
New commits: commit cc9add3208819130d5d7e3f6d873ed67912a7e01 Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> AuthorDate: Wed Jan 29 10:33:19 2020 -0500 Commit: Aron Budea <aron.bu...@collabora.com> CommitDate: Wed Jan 29 18:36:38 2020 +0100 leaflet: fix input-bar now showing keyboard on mobile Change-Id: Ib81822cae342d5e8bc394fc84e43ec681ecffb8f Reviewed-on: https://gerrit.libreoffice.org/c/online/+/87693 Reviewed-by: Aron Budea <aron.bu...@collabora.com> Tested-by: Aron Budea <aron.bu...@collabora.com> diff --git a/loleaflet/src/control/Control.LokDialog.js b/loleaflet/src/control/Control.LokDialog.js index 4779f4ed9..6afb2d064 100644 --- a/loleaflet/src/control/Control.LokDialog.js +++ b/loleaflet/src/control/Control.LokDialog.js @@ -345,15 +345,15 @@ L.Control.LokDialog = L.Control.extend({ $('#' + strId).dialog('option', 'title', e.title); } } else if (e.action === 'cursor_visible') { - // cursor_visible means focus has changed. + // cursor_visible implies focus has changed, but can + // be misleading when it flips back on forth on typing! this._dialogs[e.id].cursorVisible = e.visible === 'true'; if (this._dialogs[e.id].cursorVisible) { $('#' + strId + '-cursor').css({display: 'block'}); - this._map.onFocusDialog(this, e.id); + this._map.fire('changefocuswidget', {winId: e.id, dialog: this, acceptInput: true}); // Us. } else { $('#' + strId + '-cursor').css({display: 'none'}); - this._map.fire('changefocuswidget', {winId: 0, dialog: null}); // Editor. } } else if (e.action === 'close') { parent = this._getParentId(e.id); @@ -380,7 +380,6 @@ L.Control.LokDialog = L.Control.extend({ // set the position of the cursor container element L.DomUtil.setStyle(this._dialogs[dlgId].cursor, 'left', x + 'px'); L.DomUtil.setStyle(this._dialogs[dlgId].cursor, 'top', y + 'px'); - this._map.focus(); }, _createDialogCursor: function(dialogId) { @@ -391,7 +390,7 @@ L.Control.LokDialog = L.Control.extend({ L.DomUtil.addClass(cursor, 'blinking-cursor'); }, - focus: function(dlgId) { + focus: function(dlgId, acceptInput) { // In case of the sidebar we should be careful about // grabbing the focus from the main window. if (this._isSidebar(dlgId)) { @@ -410,7 +409,7 @@ L.Control.LokDialog = L.Control.extend({ this._map.setWinId(dlgId); if (dlgId in this._dialogs) { - this._map.focus(); + this._map.focus(acceptInput); } }, @@ -963,7 +962,7 @@ L.Control.LokDialog = L.Control.extend({ // We lost the focus. this._onEditorGotFocus(); } else { - this.focus(e.winId); + this.focus(e.winId, e.acceptInput); } }, diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js index 863e2a4f4..afd66ef8b 100644 --- a/loleaflet/src/map/Map.js +++ b/loleaflet/src/map/Map.js @@ -1336,7 +1336,10 @@ L.Map = L.Evented.extend({ }, // Change the focus to a dialog or editor. - _changeFocusWidget: function (dialog, winId) { + // @dialog is the instance of the dialog class. + // @winId is the ID of the dialog/sidebar, or 0 for the editor. + // @acceptInput iff defined, map.focus is called and passed to it. + _changeFocusWidget: function (dialog, winId, acceptInput) { if (!this._loaded) { return; } this._winId = winId; @@ -1345,6 +1348,9 @@ L.Map = L.Evented.extend({ var doclayer = this._docLayer; if (doclayer) doclayer._updateCursorAndOverlay(); + + if (acceptInput !== undefined) + this.focus(acceptInput); }, // Our browser tab lost focus. @@ -1374,7 +1380,7 @@ L.Map = L.Evented.extend({ if (e.winId === 0) { this._onEditorGotFocus(); } else { - this._changeFocusWidget(e.dialog, e.winId); + this._changeFocusWidget(e.dialog, e.winId, e.acceptInput); } }, _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits