* the raw keysym fallback.
*/
static struct keybind *
-match_keybinding(struct server *server, struct keyinfo *keyinfo)
+match_keybinding(struct server *server, struct keyinfo *keyinfo,
+ bool is_virtual)
{
+ if (is_virtual) {
+ goto process_syms;
+ }
+
/* First try keycodes */
struct keybind *keybind = match_keybinding_for_sym(server,
keyinfo->modifiers, XKB_KEY_NoSymbol, keyinfo->xkb_keycode);
return keybind;
}
+process_syms:
/* Then fall back to keysyms */
for (int i = 0; i < keyinfo->translated.nr_syms; i++) {
keybind = match_keybinding_for_sym(server, keyinfo->modifiers,
/*
* Handle compositor keybinds
*/
- struct keybind *keybind = match_keybinding(server, &keyinfo);
+ struct keybind *keybind =
+ match_keybinding(server, &keyinfo, keyboard->is_virtual);
if (keybind) {
/*
* Update key-state before action_run() because the action