Revision a924abaf
Von Moritz Bunkus vor fast 8 Jahren hinzugefügt
js/autocomplete_part.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: 'partpicker-picked', |
... | ... | |
190 | 193 |
select: function(event, ui) { |
191 | 194 |
set_item(ui.item); |
192 | 195 |
}, |
196 |
search: function(event, ui) { |
|
197 |
if ((event.which == KEY.SHIFT) || (event.which == KEY.CTRL) || (event.which == KEY.ALT)) |
|
198 |
event.preventDefault(); |
|
199 |
} |
|
193 | 200 |
}); |
194 | 201 |
/* In case users are impatient and want to skip ahead: |
195 | 202 |
* Capture <enter> key events and check if it's a unique hit. |
... | ... | |
223 | 230 |
}); |
224 | 231 |
return false; |
225 | 232 |
} |
226 |
} else { |
|
233 |
} else if ((event.which != KEY.SHIFT) && (event.which != KEY.CTRL) && (event.which != KEY.ALT)) {
|
|
227 | 234 |
state = STATES.UNDEFINED; |
228 | 235 |
} |
229 | 236 |
}); |
Auch abrufbar als: Unified diff
PartPicker: 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.