Compare commits

...

2 Commits

Author SHA1 Message Date
Jan Tojnar
ea6d59cea7 wayland: Switch to XKB_CONSUMED_MODE_GTK
This should fix Ctrl-Backspace only removing a single letter on Wayland
when `terminate:ctrl_alt_bksp` xkbcommon option is enabled.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/570
2024-06-24 10:57:18 +02:00
Jan Tojnar
a7dc9af295 wayland: Replace deprecated xkb_state_mod_mask_remove_consumed
It requires xkbcommon 0.7.0:
https://github.com/xkbcommon/libxkbcommon/pull/31
2024-06-24 10:44:42 +02:00
3 changed files with 4 additions and 4 deletions

View File

@@ -336,7 +336,7 @@ gdk_wayland_keymap_translate_keyboard_state (GdkKeymap *keymap,
layout = xkb_state_key_get_layout (xkb_state, hardware_keycode);
level = xkb_state_key_get_level (xkb_state, hardware_keycode, layout);
sym = xkb_state_key_get_one_sym (xkb_state, hardware_keycode);
consumed = modifiers & ~xkb_state_mod_mask_remove_consumed (xkb_state, hardware_keycode, modifiers);
consumed = modifiers & xkb_state_key_get_consumed_mods2 (xkb_state, hardware_keycode, XKB_CONSUMED_MODE_GTK);
xkb_state_unref (xkb_state);

View File

@@ -1283,7 +1283,7 @@ deliver_key_event (GdkWaylandSeat *seat,
translated.keyval = xkb_state_key_get_one_sym (xkb_state, key);
modifiers = xkb_state_serialize_mods (xkb_state, XKB_STATE_MODS_EFFECTIVE);
consumed = modifiers & ~xkb_state_mod_mask_remove_consumed (xkb_state, key, modifiers);
consumed = modifiers & xkb_state_key_get_consumed_mods2 (xkb_state, key, XKB_CONSUMED_MODE_GTK);
translated.consumed = gdk_wayland_keymap_get_gdk_modifiers (keymap, consumed);
translated.layout = xkb_state_key_get_layout (xkb_state, key);
translated.level = xkb_state_key_get_level (xkb_state, key, translated.layout);
@@ -1307,7 +1307,7 @@ deliver_key_event (GdkWaylandSeat *seat,
xkb_state_update_mask (tmp_state, modifiers, 0, 0, layout, 0, 0);
no_lock.keyval = xkb_state_key_get_one_sym (tmp_state, key);
consumed = modifiers & ~xkb_state_mod_mask_remove_consumed (tmp_state, key, modifiers);
consumed = modifiers & xkb_state_key_get_consumed_mods2 (tmp_state, key, XKB_CONSUMED_MODE_GTK);
no_lock.consumed = gdk_wayland_keymap_get_gdk_modifiers (keymap, consumed);
no_lock.layout = xkb_state_key_get_layout (tmp_state, key);
no_lock.level = xkb_state_key_get_level (tmp_state, key, no_lock.layout);

View File

@@ -23,7 +23,7 @@ wayland_req = '>= 1.21.0'
graphene_req = '>= 1.10.0'
epoxy_req = '>= 1.4'
cloudproviders_req = '>= 0.3.1'
xkbcommon_req = '>= 0.2.0'
xkbcommon_req = '>= 0.7.0'
sysprof_req = '>= 3.38.0'
vulkan_req = '>= 1.3'