keybindings: Seal off the keybindings manager into its own structure

This helps clean up MetaDisplay, and also helps us move it into a
backend-specific thing in the future.
This commit is contained in:
Jasper St. Pierre 2014-08-14 15:33:45 -04:00
parent f88c20f335
commit cfb85d9a9a
3 changed files with 282 additions and 256 deletions

View File

@ -174,9 +174,6 @@ struct _MetaDisplay
guint autoraise_timeout_id; guint autoraise_timeout_id;
MetaWindow* autoraise_window; MetaWindow* autoraise_window;
/* Alt+click button grabs */
ClutterModifierType window_grab_modifiers;
/* current window operation */ /* current window operation */
MetaGrabOp grab_op; MetaGrabOp grab_op;
MetaWindow *grab_window; MetaWindow *grab_window;
@ -211,21 +208,7 @@ struct _MetaDisplay
guint32 last_bell_time; guint32 last_bell_time;
int grab_resize_timeout_id; int grab_resize_timeout_id;
/* Keybindings stuff */ MetaKeyBindingManager key_binding_manager;
GHashTable *key_bindings;
GHashTable *key_bindings_index;
int min_keycode;
int max_keycode;
KeySym *keymap;
int keysyms_per_keycode;
unsigned int ignored_modifier_mask;
unsigned int hyper_mask;
unsigned int super_mask;
unsigned int meta_mask;
MetaKeyCombo overlay_key_combo;
gboolean overlay_key_only_pressed;
MetaKeyCombo *iso_next_group_combos;
int n_iso_next_group_combos;
/* Monitor cache */ /* Monitor cache */
unsigned int monitor_cache_invalidated : 1; unsigned int monitor_cache_invalidated : 1;

View File

@ -90,6 +90,29 @@ typedef struct
gboolean builtin:1; gboolean builtin:1;
} MetaKeyPref; } MetaKeyPref;
typedef struct
{
Display *xdisplay;
GHashTable *key_bindings;
GHashTable *key_bindings_index;
int min_keycode;
int max_keycode;
KeySym *keymap;
int keysyms_per_keycode;
unsigned int ignored_modifier_mask;
unsigned int hyper_mask;
unsigned int super_mask;
unsigned int meta_mask;
MetaKeyCombo overlay_key_combo;
gboolean overlay_key_only_pressed;
MetaKeyCombo *iso_next_group_combos;
int n_iso_next_group_combos;
/* Alt+click button grabs */
ClutterModifierType window_grab_modifiers;
} MetaKeyBindingManager;
void meta_display_init_keys (MetaDisplay *display); void meta_display_init_keys (MetaDisplay *display);
void meta_display_shutdown_keys (MetaDisplay *display); void meta_display_shutdown_keys (MetaDisplay *display);
void meta_screen_grab_keys (MetaScreen *screen); void meta_screen_grab_keys (MetaScreen *screen);

File diff suppressed because it is too large Load Diff