diff options
author | Drew DeVault <[email protected]> | 2015-08-23 15:28:49 -0400 |
---|---|---|
committer | Drew DeVault <[email protected]> | 2015-08-23 15:28:49 -0400 |
commit | 1ac0c8cd47f734809c20bf6a6a0a7278680ed597 (patch) | |
tree | c15286165247ae28a192f66aa5886f1d956c5b07 /sway/handlers.c | |
parent | 663f53b22a0d97a300345090a92b8567b6a0af82 (diff) |
Refactor keyboard to consider modified keysyms
Press Shift
Press 0 # Reads as ')'
Release Shift
Release 0 # Reads as '0' but we now recognize it as the same
Diffstat (limited to 'sway/handlers.c')
-rw-r--r-- | sway/handlers.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/sway/handlers.c b/sway/handlers.c index 23db5c15..acf3e6a4 100644 --- a/sway/handlers.c +++ b/sway/handlers.c @@ -295,22 +295,12 @@ static bool handle_key(wlc_handle view, uint32_t time, const struct wlc_modifier struct sway_mode *mode = config->current_mode; - if (sym < 70000 /* bullshit made up number */) { - if (!isalnum(sym) && sym != ' ' && sym != XKB_KEY_Escape && sym != XKB_KEY_Tab) { - // God fucking dammit - return false; - } - } - - // Lowercase if necessary - sym = tolower(sym); - int i; if (state == WLC_KEY_STATE_PRESSED) { - press_key(sym); + press_key(sym, key); } else { // WLC_KEY_STATE_RELEASED - release_key(sym); + release_key(sym, key); } // TODO: reminder to check conflicts with mod+q+a versus mod+q @@ -322,7 +312,7 @@ static bool handle_key(wlc_handle view, uint32_t time, const struct wlc_modifier int j; for (j = 0; j < binding->keys->length; ++j) { xkb_keysym_t *key = binding->keys->items[j]; - if ((match = check_key(*key)) == false) { + if ((match = check_key(*key, 0)) == false) { break; } } |