Ticket #5055: repeatkeyhack.diff
File repeatkeyhack.diff, 1.5 KB (added by , 6 years ago) |
---|
-
binaries/data/mods/public/gui/session/hotkeys/misc.xml
93 93 </object> 94 94 95 95 <object hotkey="session.massbarter"> 96 <action on=" Press">96 <action on="Firstpress"> 97 97 updateSelectionDetails(); 98 98 updateBarterButtons(); 99 99 </action> -
source/gui/CGUI.cpp
64 64 const double SELECT_DBLCLICK_RATE = 0.5; 65 65 const u32 MAX_OBJECT_DEPTH = 100; // Max number of nesting for GUI includes. Used to detect recursive inclusion 66 66 67 std::vector<CStr> PRESSED_HOTKEYS; 68 67 69 InReaction CGUI::HandleEvent(const SDL_Event_* ev) 68 70 { 69 71 InReaction ret = IN_PASS; … … 82 84 ret = IN_HANDLED; 83 85 84 86 if (ev->ev.type == SDL_HOTKEYDOWN) 87 { 88 if (std::find(PRESSED_HOTKEYS.begin(), PRESSED_HOTKEYS.end(), hotkey) == PRESSED_HOTKEYS.end()) 89 { 90 PRESSED_HOTKEYS.push_back(hotkey); 91 obj->SendEvent(GUIM_PRESSED, "firstpress"); 92 } 93 85 94 obj->SendEvent(GUIM_PRESSED, "press"); 95 } 86 96 else 97 { 98 PRESSED_HOTKEYS.erase(std::remove(PRESSED_HOTKEYS.begin(), PRESSED_HOTKEYS.end(), hotkey), PRESSED_HOTKEYS.end()); 87 99 obj->SendEvent(GUIM_RELEASED, "release"); 100 } 88 101 } 89 102 } 90 103