loleaflet/dist/toolbar/toolbar.js |   44 +++++++++++++++++++++++++-------------
 1 file changed, 29 insertions(+), 15 deletions(-)

New commits:
commit cba45fce4293f173be5534fa37b33ff7721a143e
Author: Pranav Kant <pran...@collabora.co.uk>
Date:   Thu Dec 8 19:20:28 2016 +0530

    loleaflet: Improved search
    
    Start searching as you type
    Press enter to search forward
    Shift + enter to search backwards
    Esc to get back to editing
    
    Change-Id: Id366069aea9eb0e96e8d73fa4b57f972b0ce78e5

diff --git a/loleaflet/dist/toolbar/toolbar.js 
b/loleaflet/dist/toolbar/toolbar.js
index 22b850e..fa07464 100644
--- a/loleaflet/dist/toolbar/toolbar.js
+++ b/loleaflet/dist/toolbar/toolbar.js
@@ -52,6 +52,16 @@ function resizeToolbar() {
        }
 }
 
+function _cancelSearch() {
+       var toolbar = w2ui['toolbar-down'];
+       map.resetSelection();
+       toolbar.hide('cancelsearch');
+       toolbar.disable('searchprev');
+       toolbar.disable('searchnext');
+       L.DomUtil.get('search-input').value = '';
+       map.focus();
+}
+
 function onClick(id, item, subItem) {
        if (w2ui['toolbar-up'].get(id) !== null) {
                var toolbar = w2ui['toolbar-up'];
@@ -130,11 +140,7 @@ function onClick(id, item, subItem) {
                map.search(L.DomUtil.get('search-input').value);
        }
        else if (id === 'cancelsearch') {
-               map.resetSelection();
-               toolbar.hide('cancelsearch');
-               toolbar.disable('searchprev');
-               toolbar.disable('searchnext');
-               L.DomUtil.get('search-input').value = '';
+               _cancelSearch();
        }
        else if (id === 'presentation' && map.getDocType() === 'presentation') {
                map.fire('fullscreen');
@@ -468,7 +474,7 @@ $(function () {
                        {type: 'html',  id: 'search',
                         html: '<div style="padding: 3px 10px;" 
class="loleaflet-font">' +
                         ' ' + _('Search:') +
-                        '    <input size="10" id="search-input" 
onkeypress="onSearch(event)"' +
+                        '    <input size="10" id="search-input" 
oninput="onSearch(event)" onkeypress="onSearchKeyPress(event)" ' +
                         'style="padding: 3px; border-radius: 2px; border: 1px 
solid silver"/>' +
                         '</div>'
                        },
@@ -587,15 +593,23 @@ function selectItem(item, func)
 }
 
 function onSearch(e) {
-       if (e.keyCode === 13) {
-               var toolbar = w2ui['toolbar-down'];
-               map.search(L.DomUtil.get('search-input').value);
-               toolbar.enable('searchprev');
-               toolbar.enable('searchnext');
-               toolbar.show('cancelsearch');
-       }
-       else {
-               map.fire('requestloksession');
+       var toolbar = w2ui['toolbar-down'];
+       map.search(L.DomUtil.get('search-input').value);
+       toolbar.enable('searchprev');
+       toolbar.enable('searchnext');
+       toolbar.show('cancelsearch');
+}
+
+function onSearchKeyPress(e) {
+       if (e.keyCode === 13) { // Enter key
+               if (e.shiftKey) {
+                       // search backwards
+                       map.search(L.DomUtil.get('search-input').value, true);
+               } else {
+                       map.search(L.DomUtil.get('search-input').value);
+               }
+       } else if (e.keyCode === 27) { // Escape key
+               _cancelSearch();
        }
 }
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to