|
50 | 50 | if(!movement_locked && !(next_move_dir_sub & movement))
|
51 | 51 | next_move_dir_add |= movement
|
52 | 52 |
|
| 53 | + // Raw keys are handled first |
| 54 | + var/datum/keybinding/rawkey/raw_keybind = GLOB.raw_keybindings_by_key[_key] |
| 55 | + if(raw_keybind) |
| 56 | + raw_keybind.down(src) |
| 57 | + |
53 | 58 | // Client-level keybindings are ones anyone should be able to do at any time
|
54 | 59 | // Things like taking screenshots, hitting tab, and adminhelps.
|
55 | 60 | var/AltMod = keys_held["Alt"] ? "Alt" : ""
|
|
74 | 79 |
|
75 | 80 | holder?.key_down(_key, src)
|
76 | 81 | mob.focus?.key_down(_key, src)
|
77 |
| - if(ShiftMod) |
78 |
| - mob.update_mouse_pointer() |
79 | 82 |
|
80 | 83 |
|
81 | 84 | /client/verb/keyUp(_key as text)
|
|
90 | 93 | if(!keys_held[_key])
|
91 | 94 | return
|
92 | 95 |
|
93 |
| - var/update_pointer = FALSE |
94 |
| - if(keys_held["Shift"]) |
95 |
| - update_pointer = TRUE |
96 |
| - |
97 | 96 | keys_held -= _key
|
98 | 97 |
|
99 |
| - if(update_pointer == TRUE) |
100 |
| - mob.update_mouse_pointer() |
101 |
| - |
102 | 98 | var/movement = movement_keys[_key]
|
103 | 99 | if(movement)
|
104 | 100 | calculate_move_dir()
|
105 | 101 | if(!movement_locked && !(next_move_dir_add & movement))
|
106 | 102 | next_move_dir_sub |= movement
|
107 | 103 |
|
| 104 | + // Raw keys are handled first |
| 105 | + var/datum/keybinding/rawkey/raw_keybind = GLOB.raw_keybindings_by_key[_key] |
| 106 | + if(raw_keybind) |
| 107 | + raw_keybind.up(src) |
| 108 | + |
108 | 109 | // We don't do full key for release, because for mod keys you
|
109 | 110 | // can hold different keys and releasing any should be handled by the key binding specifically
|
| 111 | + var/keycount = 0 |
110 | 112 | for (var/kb_name in prefs.key_bindings_by_key[_key])
|
| 113 | + keycount++ |
111 | 114 | var/datum/keybinding/kb = GLOB.keybindings_by_name[kb_name]
|
112 |
| - if(kb.can_use(src) && kb.up(src)) |
| 115 | + if(kb.can_use(src) && kb.up(src) && keycount >= MAX_COMMANDS_PER_KEY) |
113 | 116 | break
|
| 117 | + |
114 | 118 | holder?.key_up(_key, src)
|
115 | 119 | mob.focus?.key_up(_key, src)
|
116 | 120 |
|
|
0 commit comments