From 1ac0c8cd47f734809c20bf6a6a0a7278680ed597 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sun, 23 Aug 2015 15:28:49 -0400 Subject: 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 --- sway/handlers.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) (limited to 'sway/handlers.c') 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; } } -- cgit v1.2.3