summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-04-26 11:59:01 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-04-26 11:59:01 +0000
commitb23529d940c17bce03a8b8c2c29a11f07800e962 (patch)
tree12c122b8c023ec8acf387f74cccd33d583b0c5cc
parentb3b63a2c8f1cf856edb7fc7a65cfe4b537687be7 (diff)
parent2c34abed206ed04f1e5f87ebdd8747178029262e (diff)
downloadgtk+-b23529d940c17bce03a8b8c2c29a11f07800e962.tar.gz
Merge branch 'matthiasc/for-master' into 'master'
wayland: Print all layouts in debug spew See merge request GNOME/gtk!3475
-rw-r--r--gdk/wayland/gdkdevice-wayland.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c
index f065d2cc30..237c23ca03 100644
--- a/gdk/wayland/gdkdevice-wayland.c
+++ b/gdk/wayland/gdkdevice-wayland.c
@@ -1915,7 +1915,22 @@ keyboard_handle_keymap (void *data,
_gdk_wayland_keymap_update_from_fd (seat->keymap, format, fd, size);
- GDK_DISPLAY_NOTE(seat->keymap->display, INPUT, g_print ("active layout now: %s\n", get_active_layout_name (seat->keymap)));
+ GDK_DISPLAY_NOTE(seat->keymap->display, INPUT,
+ {
+ GString *s = g_string_new ("");
+ struct xkb_keymap *xkb_keymap = _gdk_wayland_keymap_get_xkb_keymap (seat->keymap);
+ struct xkb_state *xkb_state = _gdk_wayland_keymap_get_xkb_state (seat->keymap);
+ for (int i = 0; i < xkb_keymap_num_layouts (xkb_keymap); i++)
+ {
+ if (s->len > 0)
+ g_string_append (s, ", ");
+ if (xkb_state_layout_index_is_active (xkb_state, i, XKB_STATE_LAYOUT_EFFECTIVE))
+ g_string_append (s, "*");
+ g_string_append (s, xkb_keymap_layout_get_name (xkb_keymap, i));
+ }
+ g_print ("layouts: %s\n", s->str);
+ g_string_free (s, TRUE);
+ });
g_signal_emit_by_name (seat->keymap, "keys-changed");
g_signal_emit_by_name (seat->keymap, "state-changed");