loleaflet/src/control/Control.Toolbar.js | 41 ++++++++++++++++++++------- loleaflet/src/layer/tile/CalcTileLayer.js | 3 - loleaflet/src/layer/tile/ImpressTileLayer.js | 3 - loleaflet/src/layer/tile/WriterTileLayer.js | 3 - 4 files changed, 34 insertions(+), 16 deletions(-)
New commits: commit a458fdcc0ba7a5cb10f5e5756c784717a4eec2ad Author: Iván Sánchez Ortega <ivan.sanc...@collabora.com> AuthorDate: Wed Jun 26 14:17:51 2019 +0000 Commit: Jan Holesovsky <ke...@collabora.com> CommitDate: Thu Jan 2 18:18:12 2020 +0100 There must be only one cursor - either in the search or in the document. Previously clicking into the search input field did not hide the cursor in the document. Change-Id: Ia524d39de0825190c51257a3c9a0a4257ca45150 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/83353 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Jan Holesovsky <ke...@collabora.com> diff --git a/loleaflet/src/control/Control.Toolbar.js b/loleaflet/src/control/Control.Toolbar.js index a854e6cde..f053d2b55 100644 --- a/loleaflet/src/control/Control.Toolbar.js +++ b/loleaflet/src/control/Control.Toolbar.js @@ -95,8 +95,8 @@ function _cancelSearch() { // odd, but on mobile we need to invoke it twice toolbar.hide('cancelsearch'); } - else - map.focus(); + + map._onGotFocus(); } function onClick(e, id, item, subItem) { @@ -1185,8 +1185,7 @@ function initNormalToolbar() { }, onRefresh: function() { $('#tb_actionbar_item_userlist .w2ui-tb-caption').addClass('loleaflet-font'); - $('#search-input').off('input', onSearch).on('input', onSearch); - $('#search-input').off('keydown', onSearchKeyDown).on('keydown', onSearchKeyDown); + setupSearchInput(); var showInDesktop = map['wopi'].HideUserList !== null && map['wopi'].HideUserList !== undefined && @@ -1214,6 +1213,13 @@ function initNormalToolbar() { }); } +function setupSearchInput() { + $('#search-input').off('input', onSearchInput).on('input', onSearchInput); + $('#search-input').off('keypress', onSearchKeyPress).on('keypress', onSearchKeyPress); + $('#search-input').off('focus', onSearchFocus).on('focus', onSearchFocus); + $('#search-input').off('blur', onSearchBlur).on('blur', onSearchBlur); +} + var userJoinedPopupMessage = '<div>' + _('%user has joined') + '</div>'; var userLeftPopupMessage = '<div>' + _('%user has left') + '</div>'; var userPopupTimeout = null; @@ -1266,7 +1272,7 @@ function unoCmdToToolbarId(commandname) return id; } -function onSearch() { +function updateSearchButtons() { var toolbar = _inMobileMode() ? w2ui['searchbar'] : w2ui['actionbar']; // conditionally disabling until, we find a solution for tdf#108577 if (L.DomUtil.get('search-input').value === '') { @@ -1275,15 +1281,21 @@ function onSearch() { toolbar.hide('cancelsearch'); } else { - if (map.getDocType() === 'text') - map.search(L.DomUtil.get('search-input').value, false, '', 0, true /* expand search */); toolbar.enable('searchprev'); toolbar.enable('searchnext'); toolbar.show('cancelsearch'); } } -function onSearchKeyDown(e) { +function onSearchInput() { + updateSearchButtons(); + if (map.getDocType() === 'text') { + // perform the immediate search in Writer + map.search(L.DomUtil.get('search-input').value, false, '', 0, true /* expand search */); + } +} + +function onSearchKeyPress(e) { var entry = L.DomUtil.get('search-input'); if ((e.keyCode === 71 && e.ctrlKey) || e.keyCode === 114 || e.keyCode === 13) { if (e.shiftKey) { @@ -1301,6 +1313,16 @@ function onSearchKeyDown(e) { } } +function onSearchFocus() { + // hide the caret in the main document + map._onLostFocus(); + updateSearchButtons(); +} + +function onSearchBlur() { + map._onGotFocus(); +} + function documentNameConfirm() { var value = $('#document-name-input').val(); if (value !== null && value != '' && value != map['wopi'].BaseFileName) { @@ -2609,7 +2631,6 @@ global.insertTable = insertTable; global.insertShapes = insertShapes; global.createShapesPanel = createShapesPanel; global.onUpdatePermission = onUpdatePermission; -global.onSearch = onSearch; -global.onSearchKeyDown = onSearchKeyDown; +global.setupSearchInput = setupSearchInput; }(window)); diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js b/loleaflet/src/layer/tile/CalcTileLayer.js index 1aaae8ad2..f753d1a51 100644 --- a/loleaflet/src/layer/tile/CalcTileLayer.js +++ b/loleaflet/src/layer/tile/CalcTileLayer.js @@ -242,8 +242,7 @@ L.CalcTileLayer = L.TileLayer.extend({ window.onClick(e, e.target, e.item, e.subItem); }, onRefresh: function () { - $('#search-input').off('input', window.onSearch).on('input', window.onSearch); - $('#search-input').off('keydown', window.onSearchKeyDown).on('keydown', window.onSearchKeyDown); + window.setupSearchInput(); } }); diff --git a/loleaflet/src/layer/tile/ImpressTileLayer.js b/loleaflet/src/layer/tile/ImpressTileLayer.js index 485343cd1..ffa1f40af 100644 --- a/loleaflet/src/layer/tile/ImpressTileLayer.js +++ b/loleaflet/src/layer/tile/ImpressTileLayer.js @@ -227,8 +227,7 @@ L.ImpressTileLayer = L.TileLayer.extend({ window.onClick(e, e.target, e.item, e.subItem); }, onRefresh: function () { - $('#search-input').off('input', window.onSearch).on('input', window.onSearch); - $('#search-input').off('keydown', window.onSearchKeyDown).on('keydown', window.onSearchKeyDown); + window.setupSearchInput(); } }); diff --git a/loleaflet/src/layer/tile/WriterTileLayer.js b/loleaflet/src/layer/tile/WriterTileLayer.js index ac343ff24..c90f8512e 100644 --- a/loleaflet/src/layer/tile/WriterTileLayer.js +++ b/loleaflet/src/layer/tile/WriterTileLayer.js @@ -164,8 +164,7 @@ L.WriterTileLayer = L.TileLayer.extend({ window.onClick(e, e.target, e.item, e.subItem); }, onRefresh: function () { - $('#search-input').off('input', window.onSearch).on('input', window.onSearch); - $('#search-input').off('keydown', window.onSearchKeyDown).on('keydown', window.onSearchKeyDown); + window.setupSearchInput(); } }); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits