Revision e04524d9
Von Moritz Bunkus vor fast 8 Jahren hinzugefügt
js/autocomplete_chart.js | ||
---|---|---|
14 | 14 |
RIGHT: 39, |
15 | 15 |
PAGE_UP: 33, |
16 | 16 |
PAGE_DOWN: 34, |
17 |
SHIFT: 16, |
|
18 |
CTRL: 17, |
|
19 |
ALT: 18, |
|
17 | 20 |
}; |
18 | 21 |
var CLASSES = { |
19 | 22 |
PICKED: 'chartpicker-picked', |
... | ... | |
197 | 200 |
select: function(event, ui) { |
198 | 201 |
set_item(ui.item); |
199 | 202 |
}, |
203 |
search: function(event, ui) { |
|
204 |
if ((event.which == KEY.SHIFT) || (event.which == KEY.CTRL) || (event.which == KEY.ALT)) |
|
205 |
event.preventDefault(); |
|
206 |
} |
|
200 | 207 |
}); |
201 | 208 |
/* In case users are impatient and want to skip ahead: |
202 | 209 |
* Capture <enter> key events and check if it's a unique hit. |
... | ... | |
230 | 237 |
}); |
231 | 238 |
return false; |
232 | 239 |
} |
233 |
} else { |
|
240 |
} else if ((event.which != KEY.SHIFT) && (event.which != KEY.CTRL) && (event.which != KEY.ALT)) {
|
|
234 | 241 |
state = STATES.UNDEFINED; |
235 | 242 |
} |
236 | 243 |
}); |
Auch abrufbar als: Unified diff
ChartPicker: Taskendrücke auf Shift, Ctrl & Alt ignorieren
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.