Pass input device and time in key_handler callback
Move the modifiers to a input device getter function.
diff --git a/clients/terminal.c b/clients/terminal.c
index d3d7a0b..a89a5bf 100644
--- a/clients/terminal.c
+++ b/clients/terminal.c
@@ -1872,13 +1872,21 @@
}
static void
-key_handler(struct window *window, uint32_t key, uint32_t sym,
- uint32_t state, uint32_t modifiers, void *data)
+static void
+key_handler(struct window *window, struct input *input, uint32_t time,
+ uint32_t key, uint32_t sym, uint32_t state, void *data)
{
struct terminal *terminal = data;
char ch[MAX_RESPONSE];
+ uint32_t modifiers;
int len = 0;
+ modifiers = input_get_modifiers(input);
+ if ((modifiers & WINDOW_MODIFIER_CONTROL) &&
+ (modifiers & WINDOW_MODIFIER_SHIFT) &&
+ state && handle_bound_key(terminal, input, sym, 0))
+ return;
+
switch (sym) {
case XK_F11:
if (!state)