summaryrefslogtreecommitdiff
path: root/sway/handlers.c
diff options
context:
space:
mode:
authorDrew DeVault <[email protected]>2015-08-23 15:28:49 -0400
committerDrew DeVault <[email protected]>2015-08-23 15:28:49 -0400
commit1ac0c8cd47f734809c20bf6a6a0a7278680ed597 (patch)
treec15286165247ae28a192f66aa5886f1d956c5b07 /sway/handlers.c
parent663f53b22a0d97a300345090a92b8567b6a0af82 (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.c16
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;
}
}