From 1e53a13e510d79fb11fb35d64707dbec5b50eb61 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Fri, 20 Jan 2017 12:40:33 +0100 Subject: [PATCH] =?utf8?q?CustomerVendorPicker:=20Taskendr=C3=BCcke=20auf?= =?utf8?q?=20Shift,=20Ctrl=20&=20Alt=20ignorieren?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Andernfalls wird schon beim Drücken eines der Modifier eine Suche ausgelöst. Das kann besonders nervig sein, wenn man den Focus vom Browser wegnimmt: • Alt+Tab drücken, um zum anderen Fenster zu wechseln • Schon bei Alt wird eine Suche ausgelöst. • Durch den Focus-Verlust wird ein Blur-Event ausgelöst. • Und schon ist der interne Zustand ungültig, und das Element wird rot dargestellt. Analoges passiert, wenn man z.B. mit Ctrl+F2 zu einem anderen virtuellen Desktop wechselt. Noch schlimmer ist, dass bei Shift+Tab ebenfalls zuerst eine Suche ausgelöst und anschließend verhindert wird, dass der Focus das Element verlässt. --- js/autocomplete_customer.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/js/autocomplete_customer.js b/js/autocomplete_customer.js index 8e6c236f7..8f8771d86 100644 --- a/js/autocomplete_customer.js +++ b/js/autocomplete_customer.js @@ -14,6 +14,9 @@ namespace('kivi', function(k){ RIGHT: 39, PAGE_UP: 33, PAGE_DOWN: 34, + SHIFT: 16, + CTRL: 17, + ALT: 18, }; var CLASSES = { PICKED: 'customer-vendor-picker-picked', @@ -132,6 +135,10 @@ namespace('kivi', function(k){ select: function(event, ui) { set_item(ui.item); }, + search: function(event, ui) { + if ((event.which == KEY.SHIFT) || (event.which == KEY.CTRL) || (event.which == KEY.ALT)) + event.preventDefault(); + } }); /* In case users are impatient and want to skip ahead: * Capture key events and check if it's a unique hit. @@ -164,7 +171,7 @@ namespace('kivi', function(k){ }); return false; } - } else { + } else if ((event.which != KEY.SHIFT) && (event.which != KEY.CTRL) && (event.which != KEY.ALT)) { state = STATES.UNDEFINED; } }); -- 2.20.1