wayland-keyboard: Handle keymap-changed signal

We need to inform wayland clients of new keymaps.

https://bugzilla.gnome.org/show_bug.cgi?id=736433
This commit is contained in:
Rui Matos 2014-09-10 19:13:46 +02:00
parent 6ba0491adf
commit 53092424e6

View File

@ -206,6 +206,15 @@ err_keymap_str:
return; return;
} }
static void
on_keymap_changed (MetaBackend *backend,
gpointer data)
{
MetaWaylandKeyboard *keyboard = data;
meta_wayland_keyboard_take_keymap (keyboard, meta_backend_get_keymap (backend));
}
static void static void
keyboard_handle_focus_surface_destroy (struct wl_listener *listener, void *data) keyboard_handle_focus_surface_destroy (struct wl_listener *listener, void *data)
{ {
@ -337,6 +346,8 @@ void
meta_wayland_keyboard_init (MetaWaylandKeyboard *keyboard, meta_wayland_keyboard_init (MetaWaylandKeyboard *keyboard,
struct wl_display *display) struct wl_display *display)
{ {
MetaBackend *backend = meta_get_backend ();
memset (keyboard, 0, sizeof *keyboard); memset (keyboard, 0, sizeof *keyboard);
keyboard->display = display; keyboard->display = display;
@ -354,8 +365,9 @@ meta_wayland_keyboard_init (MetaWaylandKeyboard *keyboard,
g_signal_connect (keyboard->settings, "changed", g_signal_connect (keyboard->settings, "changed",
G_CALLBACK (settings_changed), keyboard); G_CALLBACK (settings_changed), keyboard);
meta_wayland_keyboard_take_keymap (keyboard, g_signal_connect (backend, "keymap-changed",
meta_backend_get_keymap (meta_get_backend ())); G_CALLBACK (on_keymap_changed), keyboard);
meta_wayland_keyboard_take_keymap (keyboard, meta_backend_get_keymap (backend));
} }
static void static void