mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-06-19 14:53:56 -07:00
SDL queues up all the input events received in a frame. When the hotkey system saw a key up/down event, it immediately updated its HotkeyIsPressed state and then pushed a hotkey event onto the end of the queue. If the initial queue was e.g. [key-down shift, key-press Z, key-up shift], the hotkey event triggered by Z would be processed after the key-up shift had updated the HotkeyIsPressed state, so the handler of the Z hotkey would not think the shift hotkey was pressed. If the initial queue was e.g. [key-press Z, mouse-click], the hotkey triggered by Z would be processed after the mouse-click event, so it could apply to the wrong building selection. Fix by pushing the hotkey events onto a special queue that gets processed before any subsequent SDL input events. Also update the HotkeyIsPressed status when the HOTKEYDOWN/HOTKEYUP events are processed, not when they are generated, to guarantee they are consistent with the DOWN/UP events. Fixes #1869. This was SVN commit r14057. |
||
|---|---|---|
| .. | ||
| atlas | ||
| autobuild | ||
| autobuild2 | ||
| autolog/SVNLog | ||
| cmpgraph | ||
| dds | ||
| dist | ||
| entconvert | ||
| entdocs | ||
| entgraph | ||
| entity | ||
| fontbuilder2 | ||
| jsdebugger | ||
| openlogsfolder | ||
| profiler2 | ||
| replayprofile | ||
| selectiontexgen | ||
| springimport | ||
| templatessorter | ||
| webservices | ||
| LICENSE.txt | ||