backend: Add a keymap-changed signal

This commit is contained in:
Jasper St. Pierre
2014-08-14 17:32:41 -04:00
parent bda2d6d1ac
commit 39f65f9f86
6 changed files with 51 additions and 14 deletions

View File

@ -126,8 +126,6 @@ void meta_window_ungrab_all_keys (MetaWindow *window,
gboolean meta_keybindings_process_event (MetaDisplay *display,
MetaWindow *window,
const ClutterEvent *event);
void meta_display_process_mapping_event (MetaDisplay *display,
XEvent *event);
ClutterModifierType meta_display_get_window_grab_modifiers (MetaDisplay *display);

View File

@ -937,10 +937,11 @@ meta_display_get_keybinding_action (MetaDisplay *display,
}
}
void
meta_display_process_mapping_event (MetaDisplay *display,
XEvent *event)
static void
on_keymap_changed (MetaBackend *backend,
gpointer user_data)
{
MetaDisplay *display = user_data;
MetaKeyBindingManager *keys = &display->key_binding_manager;
ungrab_key_bindings (display);
@ -4185,7 +4186,10 @@ meta_display_init_keys (MetaDisplay *display)
meta_prefs_add_listener (prefs_changed_callback, display);
XkbSelectEvents (keys->xdisplay, XkbUseCoreKbd,
XkbNewKeyboardNotifyMask | XkbMapNotifyMask,
XkbNewKeyboardNotifyMask | XkbMapNotifyMask);
{
MetaBackend *backend = meta_get_backend ();
g_signal_connect (backend, "keymap-changed",
G_CALLBACK (on_keymap_changed), display);
}
}