Quellcode durchsuchen

Adding support for modded special key keybind

Vinicius Teshima vor 1 Jahr
Ursprung
Commit
e54d10bbc3
2 geänderte Dateien mit 13 neuen und 13 gelöschten Zeilen
  1. 12 6
      src/app.h
  2. 1 7
      src/config.h

+ 12 - 6
src/app.h

@@ -351,15 +351,21 @@ app_add_global_keybind(struct app *app, const char *keybind,
 	IF_GOTO(words.size != 1, invalid_key);
 	/* for */ {
 		struct str_da chars = str_split(words.items[0], '-');
-		IF_GOTO(chars.size != 2, invalid_key)
-		IF_GOTO(chars.items[0].size != 1, invalid_key)
-		IF_GOTO(chars.items[1].size != 1, invalid_key)
-
+		IF_GOTO(chars.size != 2, invalid_key);
+		IF_GOTO(chars.items[0].size != 1, invalid_key);
 		SDL_Keymod mod = char_to_keymod(chars.items[0].data[0]);
 		IF_GOTO((int32_t)(mod) == -1, invalid_key);
 
-		SDL_KeyCode key = char_to_keycode(chars.items[1].data[0]);
-		IF_GOTO(key == SDLK_UNKNOWN, invalid_key);
+		SDL_KeyCode key;
+		if ( chars.items[1].size == 1 ) {
+			key = char_to_keycode(chars.items[1].data[0]);
+			IF_GOTO(key == SDLK_UNKNOWN, invalid_key);
+		} else if ( chars.items[1].data[0] == '<' ) {
+			key = str_to_keycode(chars.items[1]);
+			IF_GOTO(key == SDLK_UNKNOWN, invalid_key);
+		} else {
+			goto invalid_key;
+		}
 		DA_DESTROY(chars);
 
 		struct app_kbd kbd = {

+ 1 - 7
src/config.h

@@ -24,6 +24,7 @@ void config(struct app *app) {
 	AAGK(app, "C-k", keybind_delete_to_edg_line, DIR_FORWARD);
 
 	AAGK(app, "A-d", keybind_delete_word, DIR_FORWARD);
+	AAGK(app, "C-<backspace>", keybind_delete_word, DIR_BACKWARD);
 
 	AAGK(app, "C-e", keybind_mv_cur_edg_line, DIR_FORWARD);
 	AAGK(app, "C-a", keybind_mv_cur_edg_line, DIR_BACKWARD);
@@ -54,13 +55,6 @@ void config(struct app *app) {
 /* #define KEYBINDS_MAX_SIZE 1048 */
 /* #define KMS KEYBINDS_MAX_SIZE */
 /* static struct keybinds keybinds[KMS] = { */
-/* 	[SDLK_BACKSPACE % KMS] = { */
-/* 		.size = 2, */
-/* 		.binds = { */
-/* 			{KMOD_NONE, keybind_delete_char, {.dir = DIR_BACKWARD}}, */
-/* 			{KMOD_CTRL, keybind_delete_word, {.dir = DIR_BACKWARD}} */
-/* 		} */
-/* 	}, */
 /* 	[SDLK_PERIOD % KMS] = { */
 /* 		.size = 1, */
 /* 		.binds = { */