summary refs log tree commit diff
path: root/keyboard.h
diff options
context:
space:
mode:
authorStacy Harper <contact@stacyharper.net>2021-08-23 15:55:15 +0200
committerJohn Sullivan <jsullivan@csumb.edu>2021-10-19 23:12:01 -0700
commit18cd43074d07fceb2819ec8f5f7392510658082f (patch)
treef8696b612bcfba274949718b0896892e4dcee780 /keyboard.h
parentd7030dbc6e0ab69ccece8b00579b953b91831c62 (diff)
downloadsuggpicker-18cd43074d07fceb2819ec8f5f7392510658082f.tar.gz
Remove dedicated CodeMod
Diffstat (limited to 'keyboard.h')
-rw-r--r--keyboard.h23
1 files changed, 9 insertions, 14 deletions
diff --git a/keyboard.h b/keyboard.h
index bdd2f58..7f58b0d 100644
--- a/keyboard.h
+++ b/keyboard.h
@@ -13,7 +13,6 @@ enum key_type {
 	EndRow,
 	Last,
 	Compose,
-	CodeMod,
 	Copy,
 };
 
@@ -170,20 +169,12 @@ void
 kbd_press_key(struct kbd *kb, struct key *k, uint32_t time) {
 	uint8_t mods_before;
 	switch (k->type) {
-	case CodeMod:
-		mods_before = kb->mods;
-
-		kb->mods ^= k->code_mod;
-		kb->last_press = k;
-		kbd_draw_key(kb, k, true);
-		zwp_virtual_keyboard_v1_modifiers(kb->vkbd, kb->mods, 0, 0, 0);
-		zwp_virtual_keyboard_v1_key(kb->vkbd, time, kb->last_press->code,
-		                            WL_KEYBOARD_KEY_STATE_PRESSED);
-
-		kb->mods = mods_before;
-		zwp_virtual_keyboard_v1_modifiers(kb->vkbd, kb->mods, 0, 0, 0);
-		break;
 	case Code:
+		if (k->code_mod) {
+			mods_before = kb->mods;
+			kb->mods = k->code_mod;
+			zwp_virtual_keyboard_v1_modifiers(kb->vkbd, kb->mods, 0, 0, 0);
+		}
 		if (compose == 1) {
 			if (k->layout) {
 				compose++;
@@ -204,6 +195,10 @@ kbd_press_key(struct kbd *kb, struct key *k, uint32_t time) {
 				compose++;
 			}
 		}
+		if (k->code_mod) {
+			kb->mods = mods_before;
+			zwp_virtual_keyboard_v1_modifiers(kb->vkbd, kb->mods, 0, 0, 0);
+		}
 		break;
 	case Mod:
 		kb->mods ^= k->code;