Revision 0a98a0dc
Von Moritz Bunkus vor fast 8 Jahren hinzugefügt
js/autocomplete_project.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: 'projectpicker-picked', |
... | ... | |
148 | 151 |
select: function(event, ui) { |
149 | 152 |
set_item(ui.item); |
150 | 153 |
}, |
154 |
search: function(event, ui) { |
|
155 |
if ((event.which == KEY.SHIFT) || (event.which == KEY.CTRL) || (event.which == KEY.ALT)) |
|
156 |
event.preventDefault(); |
|
157 |
} |
|
151 | 158 |
}); |
152 | 159 |
/* In case users are impatient and want to skip ahead: |
153 | 160 |
* Capture <enter> key events and check if it's a unique hit. |
... | ... | |
180 | 187 |
}); |
181 | 188 |
return false; |
182 | 189 |
} |
183 |
} else { |
|
190 |
} else if ((event.which != KEY.SHIFT) && (event.which != KEY.CTRL) && (event.which != KEY.ALT)) {
|
|
184 | 191 |
state = STATES.UNDEFINED; |
185 | 192 |
} |
186 | 193 |
}); |
Auch abrufbar als: Unified diff
ProjectPicker: 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.