mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-06-20 23:33:59 -07:00
This is a semi-revert of78bc56f33eand a correct fix for #3194. The core issue is that the GUI handler must come behore the hotkey handler, otherwise typing in boxes can set off hotkeys, and the hotkey handler is repsonsible for updating the hotkey state. Thus the GUI handler never has an up-to-date hotkey state, since that's done later.78bc56f33efixed that by calling HotkeyInputHandler manually, but that was still broken in some (unused) cases and was hacky (indeed, it even looked hacky as noted by elexis). The simplest fix is to split the 'hotkey creator' handler from the 'hotkey state change' handler, and run the 'hotkey state change handler' before any other handler. Thus the gui handler remains in front of the 'hotkey creator' handler, but it has a correct hotkey state at any time. Differential Revision: https://code.wildfiregames.com/D1839 This was SVN commit r22909.
36 lines
1,009 B
XML
Executable file
36 lines
1,009 B
XML
Executable file
<?xml version="1.0" encoding="UTF-8"?>
|
|
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
<start>
|
|
<a:documentation/>
|
|
<!--
|
|
NOTE: To modify this Relax NG grammar, edit the Relax NG Compact (.rnc) file
|
|
and use a converter tool like trang to generate the Relax NG XML (.rng) file
|
|
-->
|
|
<a:documentation/>
|
|
<choice>
|
|
<ref name="objects"/>
|
|
</choice>
|
|
</start>
|
|
<define name="objects">
|
|
<element name="objects">
|
|
<zeroOrMore>
|
|
<choice>
|
|
<ref name="script"/>
|
|
</choice>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
<define name="script">
|
|
<element name="script">
|
|
<interleave>
|
|
<text/>
|
|
<optional>
|
|
<attribute name="file"/>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="directory"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
</grammar>
|