keybindings: Rename MetaKeyDevirtCombo to MetaResolvedKeyCombo
rtcm thought this was less awkward of a name.
This commit is contained in:
parent
1fc58faff9
commit
9d6357f05a
@ -42,10 +42,10 @@ struct _MetaKeyHandler
|
|||||||
GDestroyNotify user_data_free_func;
|
GDestroyNotify user_data_free_func;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct _MetaKeyDevirtCombo {
|
typedef struct _MetaResolvedKeyCombo {
|
||||||
xkb_keycode_t keycode;
|
xkb_keycode_t keycode;
|
||||||
xkb_mod_mask_t mask;
|
xkb_mod_mask_t mask;
|
||||||
} MetaKeyDevirtCombo;
|
} MetaResolvedKeyCombo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MetaKeyCombo:
|
* MetaKeyCombo:
|
||||||
@ -65,7 +65,7 @@ struct _MetaKeyBinding
|
|||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
MetaKeyCombo combo;
|
MetaKeyCombo combo;
|
||||||
MetaKeyDevirtCombo devirt_combo;
|
MetaResolvedKeyCombo resolved_combo;
|
||||||
gint flags;
|
gint flags;
|
||||||
MetaKeyHandler *handler;
|
MetaKeyHandler *handler;
|
||||||
};
|
};
|
||||||
@ -100,9 +100,9 @@ typedef struct
|
|||||||
xkb_mod_mask_t super_mask;
|
xkb_mod_mask_t super_mask;
|
||||||
xkb_mod_mask_t meta_mask;
|
xkb_mod_mask_t meta_mask;
|
||||||
MetaKeyCombo overlay_key_combo;
|
MetaKeyCombo overlay_key_combo;
|
||||||
MetaKeyDevirtCombo overlay_key_devirt_combo;
|
MetaResolvedKeyCombo overlay_resolved_key_combo;
|
||||||
gboolean overlay_key_only_pressed;
|
gboolean overlay_key_only_pressed;
|
||||||
MetaKeyDevirtCombo *iso_next_group_combos;
|
MetaResolvedKeyCombo *iso_next_group_combos;
|
||||||
int n_iso_next_group_combos;
|
int n_iso_next_group_combos;
|
||||||
|
|
||||||
xkb_level_index_t keymap_num_levels;
|
xkb_level_index_t keymap_num_levels;
|
||||||
|
@ -103,7 +103,7 @@ meta_key_binding_is_reversed (MetaKeyBinding *binding)
|
|||||||
guint
|
guint
|
||||||
meta_key_binding_get_mask (MetaKeyBinding *binding)
|
meta_key_binding_get_mask (MetaKeyBinding *binding)
|
||||||
{
|
{
|
||||||
return binding->devirt_combo.mask;
|
return binding->resolved_combo.mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
@ -164,7 +164,7 @@ meta_key_grab_free (MetaKeyGrab *grab)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static guint32
|
static guint32
|
||||||
key_combo_key (MetaKeyDevirtCombo *devirt_combo)
|
key_combo_key (MetaResolvedKeyCombo *resolved_combo)
|
||||||
{
|
{
|
||||||
/* On X, keycodes are only 8 bits while libxkbcommon supports 32 bit
|
/* On X, keycodes are only 8 bits while libxkbcommon supports 32 bit
|
||||||
keycodes, but since we're using the same XKB keymaps that X uses,
|
keycodes, but since we're using the same XKB keymaps that X uses,
|
||||||
@ -174,8 +174,8 @@ key_combo_key (MetaKeyDevirtCombo *devirt_combo)
|
|||||||
can use a 32 bit integer to safely concatenate both keycode and
|
can use a 32 bit integer to safely concatenate both keycode and
|
||||||
mask and thus making it easy to use them as an index in a
|
mask and thus making it easy to use them as an index in a
|
||||||
GHashTable. */
|
GHashTable. */
|
||||||
guint32 key = devirt_combo->keycode & 0xffff;
|
guint32 key = resolved_combo->keycode & 0xffff;
|
||||||
return (key << 16) | (devirt_combo->mask & 0xffff);
|
return (key << 16) | (resolved_combo->mask & 0xffff);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -361,7 +361,7 @@ static void
|
|||||||
reload_iso_next_group_combos (MetaKeyBindingManager *keys)
|
reload_iso_next_group_combos (MetaKeyBindingManager *keys)
|
||||||
{
|
{
|
||||||
const char *iso_next_group_option;
|
const char *iso_next_group_option;
|
||||||
MetaKeyDevirtCombo *combos;
|
MetaResolvedKeyCombo *combos;
|
||||||
int *keycodes;
|
int *keycodes;
|
||||||
int n_keycodes;
|
int n_keycodes;
|
||||||
int n_combos;
|
int n_combos;
|
||||||
@ -389,7 +389,7 @@ reload_iso_next_group_combos (MetaKeyBindingManager *keys)
|
|||||||
g_str_equal (iso_next_group_option, "caps_toggle"))
|
g_str_equal (iso_next_group_option, "caps_toggle"))
|
||||||
{
|
{
|
||||||
n_combos = n_keycodes;
|
n_combos = n_keycodes;
|
||||||
combos = g_new (MetaKeyDevirtCombo, n_combos);
|
combos = g_new (MetaResolvedKeyCombo, n_combos);
|
||||||
|
|
||||||
for (i = 0; i < n_keycodes; ++i)
|
for (i = 0; i < n_keycodes; ++i)
|
||||||
{
|
{
|
||||||
@ -401,7 +401,7 @@ reload_iso_next_group_combos (MetaKeyBindingManager *keys)
|
|||||||
g_str_equal (iso_next_group_option, "shifts_toggle"))
|
g_str_equal (iso_next_group_option, "shifts_toggle"))
|
||||||
{
|
{
|
||||||
n_combos = n_keycodes;
|
n_combos = n_keycodes;
|
||||||
combos = g_new (MetaKeyDevirtCombo, n_combos);
|
combos = g_new (MetaResolvedKeyCombo, n_combos);
|
||||||
|
|
||||||
for (i = 0; i < n_keycodes; ++i)
|
for (i = 0; i < n_keycodes; ++i)
|
||||||
{
|
{
|
||||||
@ -413,7 +413,7 @@ reload_iso_next_group_combos (MetaKeyBindingManager *keys)
|
|||||||
g_str_equal (iso_next_group_option, "alt_space_toggle"))
|
g_str_equal (iso_next_group_option, "alt_space_toggle"))
|
||||||
{
|
{
|
||||||
n_combos = n_keycodes;
|
n_combos = n_keycodes;
|
||||||
combos = g_new (MetaKeyDevirtCombo, n_combos);
|
combos = g_new (MetaResolvedKeyCombo, n_combos);
|
||||||
|
|
||||||
for (i = 0; i < n_keycodes; ++i)
|
for (i = 0; i < n_keycodes; ++i)
|
||||||
{
|
{
|
||||||
@ -426,7 +426,7 @@ reload_iso_next_group_combos (MetaKeyBindingManager *keys)
|
|||||||
g_str_equal (iso_next_group_option, "rctrl_rshift_toggle"))
|
g_str_equal (iso_next_group_option, "rctrl_rshift_toggle"))
|
||||||
{
|
{
|
||||||
n_combos = n_keycodes * 2;
|
n_combos = n_keycodes * 2;
|
||||||
combos = g_new (MetaKeyDevirtCombo, n_combos);
|
combos = g_new (MetaResolvedKeyCombo, n_combos);
|
||||||
|
|
||||||
for (i = 0; i < n_keycodes; ++i)
|
for (i = 0; i < n_keycodes; ++i)
|
||||||
{
|
{
|
||||||
@ -440,7 +440,7 @@ reload_iso_next_group_combos (MetaKeyBindingManager *keys)
|
|||||||
else if (g_str_equal (iso_next_group_option, "ctrl_alt_toggle"))
|
else if (g_str_equal (iso_next_group_option, "ctrl_alt_toggle"))
|
||||||
{
|
{
|
||||||
n_combos = n_keycodes * 2;
|
n_combos = n_keycodes * 2;
|
||||||
combos = g_new (MetaKeyDevirtCombo, n_combos);
|
combos = g_new (MetaResolvedKeyCombo, n_combos);
|
||||||
|
|
||||||
for (i = 0; i < n_keycodes; ++i)
|
for (i = 0; i < n_keycodes; ++i)
|
||||||
{
|
{
|
||||||
@ -455,7 +455,7 @@ reload_iso_next_group_combos (MetaKeyBindingManager *keys)
|
|||||||
g_str_equal (iso_next_group_option, "lalt_lshift_toggle"))
|
g_str_equal (iso_next_group_option, "lalt_lshift_toggle"))
|
||||||
{
|
{
|
||||||
n_combos = n_keycodes * 2;
|
n_combos = n_keycodes * 2;
|
||||||
combos = g_new (MetaKeyDevirtCombo, n_combos);
|
combos = g_new (MetaResolvedKeyCombo, n_combos);
|
||||||
|
|
||||||
for (i = 0; i < n_keycodes; ++i)
|
for (i = 0; i < n_keycodes; ++i)
|
||||||
{
|
{
|
||||||
@ -508,16 +508,16 @@ devirtualize_modifiers (MetaKeyBindingManager *keys,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
devirtualize_key_combo (MetaKeyBindingManager *keys,
|
resolve_key_combo (MetaKeyBindingManager *keys,
|
||||||
MetaKeyCombo *combo,
|
MetaKeyCombo *combo,
|
||||||
MetaKeyDevirtCombo *devirt_combo)
|
MetaResolvedKeyCombo *resolved_combo)
|
||||||
{
|
{
|
||||||
if (combo->keysym != 0)
|
if (combo->keysym != 0)
|
||||||
devirt_combo->keycode = get_first_keycode_for_keysym (keys, combo->keysym);
|
resolved_combo->keycode = get_first_keycode_for_keysym (keys, combo->keysym);
|
||||||
else
|
else
|
||||||
devirt_combo->keycode = combo->keycode;
|
resolved_combo->keycode = combo->keycode;
|
||||||
|
|
||||||
devirtualize_modifiers (keys, combo->modifiers, &devirt_combo->mask);
|
devirtualize_modifiers (keys, combo->modifiers, &resolved_combo->mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -528,7 +528,7 @@ binding_reload_combos_foreach (gpointer key,
|
|||||||
MetaKeyBindingManager *keys = data;
|
MetaKeyBindingManager *keys = data;
|
||||||
MetaKeyBinding *binding = value;
|
MetaKeyBinding *binding = value;
|
||||||
|
|
||||||
devirtualize_key_combo (keys, &binding->combo, &binding->devirt_combo);
|
resolve_key_combo (keys, &binding->combo, &binding->resolved_combo);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -536,9 +536,9 @@ reload_combos (MetaKeyBindingManager *keys)
|
|||||||
{
|
{
|
||||||
determine_keymap_num_levels (keys);
|
determine_keymap_num_levels (keys);
|
||||||
|
|
||||||
devirtualize_key_combo (keys,
|
resolve_key_combo (keys,
|
||||||
&keys->overlay_key_combo,
|
&keys->overlay_key_combo,
|
||||||
&keys->overlay_key_devirt_combo);
|
&keys->overlay_resolved_key_combo);
|
||||||
|
|
||||||
reload_iso_next_group_combos (keys);
|
reload_iso_next_group_combos (keys);
|
||||||
|
|
||||||
@ -551,7 +551,7 @@ index_binding (MetaKeyBindingManager *keys,
|
|||||||
{
|
{
|
||||||
guint32 index_key;
|
guint32 index_key;
|
||||||
|
|
||||||
index_key = key_combo_key (&binding->devirt_combo);
|
index_key = key_combo_key (&binding->resolved_combo);
|
||||||
g_hash_table_replace (keys->key_bindings_index,
|
g_hash_table_replace (keys->key_bindings_index,
|
||||||
GINT_TO_POINTER (index_key), binding);
|
GINT_TO_POINTER (index_key), binding);
|
||||||
}
|
}
|
||||||
@ -700,10 +700,10 @@ grab_key_bindings (MetaDisplay *display)
|
|||||||
|
|
||||||
static MetaKeyBinding *
|
static MetaKeyBinding *
|
||||||
get_keybinding (MetaKeyBindingManager *keys,
|
get_keybinding (MetaKeyBindingManager *keys,
|
||||||
MetaKeyDevirtCombo *devirt_combo)
|
MetaResolvedKeyCombo *resolved_combo)
|
||||||
{
|
{
|
||||||
guint32 key;
|
guint32 key;
|
||||||
key = key_combo_key (devirt_combo);
|
key = key_combo_key (resolved_combo);
|
||||||
return g_hash_table_lookup (keys->key_bindings_index, GINT_TO_POINTER (key));
|
return g_hash_table_lookup (keys->key_bindings_index, GINT_TO_POINTER (key));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -824,7 +824,7 @@ meta_display_remove_keybinding (MetaDisplay *display,
|
|||||||
|
|
||||||
static guint
|
static guint
|
||||||
get_keybinding_action (MetaKeyBindingManager *keys,
|
get_keybinding_action (MetaKeyBindingManager *keys,
|
||||||
MetaKeyDevirtCombo *devirt_combo)
|
MetaResolvedKeyCombo *resolved_combo)
|
||||||
{
|
{
|
||||||
MetaKeyBinding *binding;
|
MetaKeyBinding *binding;
|
||||||
|
|
||||||
@ -834,10 +834,10 @@ get_keybinding_action (MetaKeyBindingManager *keys,
|
|||||||
* of mutter keybindings while holding a grab, the overlay-key-only-pressed
|
* of mutter keybindings while holding a grab, the overlay-key-only-pressed
|
||||||
* tracking is left to the plugin here.
|
* tracking is left to the plugin here.
|
||||||
*/
|
*/
|
||||||
if (devirt_combo->keycode == (unsigned int)keys->overlay_key_devirt_combo.keycode)
|
if (resolved_combo->keycode == (unsigned int)keys->overlay_resolved_key_combo.keycode)
|
||||||
return META_KEYBINDING_ACTION_OVERLAY_KEY;
|
return META_KEYBINDING_ACTION_OVERLAY_KEY;
|
||||||
|
|
||||||
binding = get_keybinding (keys, devirt_combo);
|
binding = get_keybinding (keys, resolved_combo);
|
||||||
if (binding)
|
if (binding)
|
||||||
{
|
{
|
||||||
MetaKeyGrab *grab = g_hash_table_lookup (external_grabs, binding->name);
|
MetaKeyGrab *grab = g_hash_table_lookup (external_grabs, binding->name);
|
||||||
@ -853,13 +853,13 @@ get_keybinding_action (MetaKeyBindingManager *keys,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
devirt_combo_from_event_params (MetaKeyDevirtCombo *devirt_combo,
|
resolved_combo_from_event_params (MetaResolvedKeyCombo *resolved_combo,
|
||||||
MetaKeyBindingManager *keys,
|
MetaKeyBindingManager *keys,
|
||||||
unsigned int keycode,
|
unsigned int keycode,
|
||||||
unsigned long mask)
|
unsigned long mask)
|
||||||
{
|
{
|
||||||
devirt_combo->keycode = keycode;
|
resolved_combo->keycode = keycode;
|
||||||
devirt_combo->mask = mask & 0xff & ~keys->ignored_modifier_mask;
|
resolved_combo->mask = mask & 0xff & ~keys->ignored_modifier_mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -882,9 +882,9 @@ meta_display_get_keybinding_action (MetaDisplay *display,
|
|||||||
unsigned long mask)
|
unsigned long mask)
|
||||||
{
|
{
|
||||||
MetaKeyBindingManager *keys = &display->key_binding_manager;
|
MetaKeyBindingManager *keys = &display->key_binding_manager;
|
||||||
MetaKeyDevirtCombo devirt_combo;
|
MetaResolvedKeyCombo resolved_combo;
|
||||||
devirt_combo_from_event_params (&devirt_combo, keys, keycode, mask);
|
resolved_combo_from_event_params (&resolved_combo, keys, keycode, mask);
|
||||||
return get_keybinding_action (keys, &devirt_combo);
|
return get_keybinding_action (keys, &resolved_combo);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -1171,7 +1171,7 @@ static void
|
|||||||
meta_change_keygrab (MetaKeyBindingManager *keys,
|
meta_change_keygrab (MetaKeyBindingManager *keys,
|
||||||
Window xwindow,
|
Window xwindow,
|
||||||
gboolean grab,
|
gboolean grab,
|
||||||
MetaKeyDevirtCombo *devirt_combo)
|
MetaResolvedKeyCombo *resolved_combo)
|
||||||
{
|
{
|
||||||
unsigned int ignored_mask;
|
unsigned int ignored_mask;
|
||||||
|
|
||||||
@ -1192,7 +1192,7 @@ meta_change_keygrab (MetaKeyBindingManager *keys,
|
|||||||
meta_topic (META_DEBUG_KEYBINDINGS,
|
meta_topic (META_DEBUG_KEYBINDINGS,
|
||||||
"%s keybinding keycode %d mask 0x%x on 0x%lx\n",
|
"%s keybinding keycode %d mask 0x%x on 0x%lx\n",
|
||||||
grab ? "Grabbing" : "Ungrabbing",
|
grab ? "Grabbing" : "Ungrabbing",
|
||||||
devirt_combo->keycode, devirt_combo->mask, xwindow);
|
resolved_combo->keycode, resolved_combo->mask, xwindow);
|
||||||
|
|
||||||
ignored_mask = 0;
|
ignored_mask = 0;
|
||||||
while (ignored_mask <= keys->ignored_modifier_mask)
|
while (ignored_mask <= keys->ignored_modifier_mask)
|
||||||
@ -1208,18 +1208,18 @@ meta_change_keygrab (MetaKeyBindingManager *keys,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
mods = (XIGrabModifiers) { devirt_combo->mask | ignored_mask, 0 };
|
mods = (XIGrabModifiers) { resolved_combo->mask | ignored_mask, 0 };
|
||||||
|
|
||||||
if (grab)
|
if (grab)
|
||||||
XIGrabKeycode (xdisplay,
|
XIGrabKeycode (xdisplay,
|
||||||
META_VIRTUAL_CORE_KEYBOARD_ID,
|
META_VIRTUAL_CORE_KEYBOARD_ID,
|
||||||
devirt_combo->keycode, xwindow,
|
resolved_combo->keycode, xwindow,
|
||||||
XIGrabModeSync, XIGrabModeAsync,
|
XIGrabModeSync, XIGrabModeAsync,
|
||||||
False, &mask, 1, &mods);
|
False, &mask, 1, &mods);
|
||||||
else
|
else
|
||||||
XIUngrabKeycode (xdisplay,
|
XIUngrabKeycode (xdisplay,
|
||||||
META_VIRTUAL_CORE_KEYBOARD_ID,
|
META_VIRTUAL_CORE_KEYBOARD_ID,
|
||||||
devirt_combo->keycode, xwindow, 1, &mods);
|
resolved_combo->keycode, xwindow, 1, &mods);
|
||||||
|
|
||||||
++ignored_mask;
|
++ignored_mask;
|
||||||
}
|
}
|
||||||
@ -1245,10 +1245,10 @@ change_keygrab_foreach (gpointer key,
|
|||||||
if (data->only_per_window != binding_is_per_window)
|
if (data->only_per_window != binding_is_per_window)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (binding->devirt_combo.keycode == 0)
|
if (binding->resolved_combo.keycode == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
meta_change_keygrab (data->keys, data->xwindow, data->grab, &binding->devirt_combo);
|
meta_change_keygrab (data->keys, data->xwindow, data->grab, &binding->resolved_combo);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -1274,8 +1274,8 @@ meta_screen_change_keygrabs (MetaScreen *screen,
|
|||||||
MetaDisplay *display = screen->display;
|
MetaDisplay *display = screen->display;
|
||||||
MetaKeyBindingManager *keys = &display->key_binding_manager;
|
MetaKeyBindingManager *keys = &display->key_binding_manager;
|
||||||
|
|
||||||
if (keys->overlay_key_devirt_combo.keycode != 0)
|
if (keys->overlay_resolved_key_combo.keycode != 0)
|
||||||
meta_change_keygrab (keys, screen->xroot, grab, &keys->overlay_key_devirt_combo);
|
meta_change_keygrab (keys, screen->xroot, grab, &keys->overlay_resolved_key_combo);
|
||||||
|
|
||||||
if (keys->iso_next_group_combos)
|
if (keys->iso_next_group_combos)
|
||||||
{
|
{
|
||||||
@ -1395,7 +1395,7 @@ handle_external_grab (MetaDisplay *display,
|
|||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
MetaKeyBindingManager *keys = &display->key_binding_manager;
|
MetaKeyBindingManager *keys = &display->key_binding_manager;
|
||||||
guint action = get_keybinding_action (keys, &binding->devirt_combo);
|
guint action = get_keybinding_action (keys, &binding->resolved_combo);
|
||||||
meta_display_accelerator_activate (display, action, event);
|
meta_display_accelerator_activate (display, action, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1409,7 +1409,7 @@ meta_display_grab_accelerator (MetaDisplay *display,
|
|||||||
MetaKeyBinding *binding;
|
MetaKeyBinding *binding;
|
||||||
MetaKeyGrab *grab;
|
MetaKeyGrab *grab;
|
||||||
MetaKeyCombo combo;
|
MetaKeyCombo combo;
|
||||||
MetaKeyDevirtCombo devirt_combo;
|
MetaResolvedKeyCombo resolved_combo;
|
||||||
|
|
||||||
if (!meta_parse_accelerator (accelerator, &combo))
|
if (!meta_parse_accelerator (accelerator, &combo))
|
||||||
{
|
{
|
||||||
@ -1420,16 +1420,16 @@ meta_display_grab_accelerator (MetaDisplay *display,
|
|||||||
return META_KEYBINDING_ACTION_NONE;
|
return META_KEYBINDING_ACTION_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
devirtualize_key_combo (keys, &combo, &devirt_combo);
|
resolve_key_combo (keys, &combo, &resolved_combo);
|
||||||
|
|
||||||
if (devirt_combo.keycode == 0)
|
if (resolved_combo.keycode == 0)
|
||||||
return META_KEYBINDING_ACTION_NONE;
|
return META_KEYBINDING_ACTION_NONE;
|
||||||
|
|
||||||
if (get_keybinding (keys, &devirt_combo))
|
if (get_keybinding (keys, &resolved_combo))
|
||||||
return META_KEYBINDING_ACTION_NONE;
|
return META_KEYBINDING_ACTION_NONE;
|
||||||
|
|
||||||
if (META_IS_BACKEND_X11 (backend))
|
if (META_IS_BACKEND_X11 (backend))
|
||||||
meta_change_keygrab (keys, display->screen->xroot, TRUE, &devirt_combo);
|
meta_change_keygrab (keys, display->screen->xroot, TRUE, &resolved_combo);
|
||||||
|
|
||||||
grab = g_new0 (MetaKeyGrab, 1);
|
grab = g_new0 (MetaKeyGrab, 1);
|
||||||
grab->action = next_dynamic_keybinding_action ();
|
grab->action = next_dynamic_keybinding_action ();
|
||||||
@ -1442,7 +1442,7 @@ meta_display_grab_accelerator (MetaDisplay *display,
|
|||||||
binding->name = grab->name;
|
binding->name = grab->name;
|
||||||
binding->handler = HANDLER ("external-grab");
|
binding->handler = HANDLER ("external-grab");
|
||||||
binding->combo = combo;
|
binding->combo = combo;
|
||||||
binding->devirt_combo = devirt_combo;
|
binding->resolved_combo = resolved_combo;
|
||||||
|
|
||||||
g_hash_table_add (keys->key_bindings, binding);
|
g_hash_table_add (keys->key_bindings, binding);
|
||||||
index_binding (keys, binding);
|
index_binding (keys, binding);
|
||||||
@ -1459,7 +1459,7 @@ meta_display_ungrab_accelerator (MetaDisplay *display,
|
|||||||
MetaKeyBinding *binding;
|
MetaKeyBinding *binding;
|
||||||
MetaKeyGrab *grab;
|
MetaKeyGrab *grab;
|
||||||
char *key;
|
char *key;
|
||||||
MetaKeyDevirtCombo devirt_combo;
|
MetaResolvedKeyCombo resolved_combo;
|
||||||
|
|
||||||
g_return_val_if_fail (action != META_KEYBINDING_ACTION_NONE, FALSE);
|
g_return_val_if_fail (action != META_KEYBINDING_ACTION_NONE, FALSE);
|
||||||
|
|
||||||
@ -1468,16 +1468,16 @@ meta_display_ungrab_accelerator (MetaDisplay *display,
|
|||||||
if (!grab)
|
if (!grab)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
devirtualize_key_combo (keys, &grab->combo, &devirt_combo);
|
resolve_key_combo (keys, &grab->combo, &resolved_combo);
|
||||||
binding = get_keybinding (keys, &devirt_combo);
|
binding = get_keybinding (keys, &resolved_combo);
|
||||||
if (binding)
|
if (binding)
|
||||||
{
|
{
|
||||||
guint32 index_key;
|
guint32 index_key;
|
||||||
|
|
||||||
if (META_IS_BACKEND_X11 (backend))
|
if (META_IS_BACKEND_X11 (backend))
|
||||||
meta_change_keygrab (keys, display->screen->xroot, FALSE, &binding->devirt_combo);
|
meta_change_keygrab (keys, display->screen->xroot, FALSE, &binding->resolved_combo);
|
||||||
|
|
||||||
index_key = key_combo_key (&binding->devirt_combo);
|
index_key = key_combo_key (&binding->resolved_combo);
|
||||||
g_hash_table_remove (keys->key_bindings_index, GINT_TO_POINTER (index_key));
|
g_hash_table_remove (keys->key_bindings_index, GINT_TO_POINTER (index_key));
|
||||||
|
|
||||||
g_hash_table_remove (keys->key_bindings, binding);
|
g_hash_table_remove (keys->key_bindings, binding);
|
||||||
@ -1693,18 +1693,18 @@ process_event (MetaDisplay *display,
|
|||||||
ClutterKeyEvent *event)
|
ClutterKeyEvent *event)
|
||||||
{
|
{
|
||||||
MetaKeyBindingManager *keys = &display->key_binding_manager;
|
MetaKeyBindingManager *keys = &display->key_binding_manager;
|
||||||
MetaKeyDevirtCombo devirt_combo;
|
MetaResolvedKeyCombo resolved_combo;
|
||||||
MetaKeyBinding *binding;
|
MetaKeyBinding *binding;
|
||||||
|
|
||||||
/* we used to have release-based bindings but no longer. */
|
/* we used to have release-based bindings but no longer. */
|
||||||
if (event->type == CLUTTER_KEY_RELEASE)
|
if (event->type == CLUTTER_KEY_RELEASE)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
devirt_combo_from_event_params (&devirt_combo, keys,
|
resolved_combo_from_event_params (&resolved_combo, keys,
|
||||||
event->hardware_keycode,
|
event->hardware_keycode,
|
||||||
event->modifier_state);
|
event->modifier_state);
|
||||||
|
|
||||||
binding = get_keybinding (keys, &devirt_combo);
|
binding = get_keybinding (keys, &resolved_combo);
|
||||||
|
|
||||||
if (!binding ||
|
if (!binding ||
|
||||||
(!window && binding->flags & META_KEY_BINDING_PER_WINDOW))
|
(!window && binding->flags & META_KEY_BINDING_PER_WINDOW))
|
||||||
@ -1756,7 +1756,7 @@ process_overlay_key (MetaDisplay *display,
|
|||||||
|
|
||||||
if (keys->overlay_key_only_pressed)
|
if (keys->overlay_key_only_pressed)
|
||||||
{
|
{
|
||||||
if (event->hardware_keycode != (int)keys->overlay_key_devirt_combo.keycode)
|
if (event->hardware_keycode != (int)keys->overlay_resolved_key_combo.keycode)
|
||||||
{
|
{
|
||||||
keys->overlay_key_only_pressed = FALSE;
|
keys->overlay_key_only_pressed = FALSE;
|
||||||
|
|
||||||
@ -1809,7 +1809,7 @@ process_overlay_key (MetaDisplay *display,
|
|||||||
clutter_input_device_get_device_id (event->device),
|
clutter_input_device_get_device_id (event->device),
|
||||||
XIAsyncDevice, event->time);
|
XIAsyncDevice, event->time);
|
||||||
|
|
||||||
binding = get_keybinding (keys, &keys->overlay_key_devirt_combo);
|
binding = get_keybinding (keys, &keys->overlay_resolved_key_combo);
|
||||||
if (binding &&
|
if (binding &&
|
||||||
meta_compositor_filter_keybinding (display->compositor, binding))
|
meta_compositor_filter_keybinding (display->compositor, binding))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -1838,7 +1838,7 @@ process_overlay_key (MetaDisplay *display,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else if (event->type == CLUTTER_KEY_PRESS &&
|
else if (event->type == CLUTTER_KEY_PRESS &&
|
||||||
event->hardware_keycode == (int)keys->overlay_key_devirt_combo.keycode)
|
event->hardware_keycode == (int)keys->overlay_resolved_key_combo.keycode)
|
||||||
{
|
{
|
||||||
keys->overlay_key_only_pressed = TRUE;
|
keys->overlay_key_only_pressed = TRUE;
|
||||||
/* We keep the keyboard frozen - this allows us to use ReplayKeyboard
|
/* We keep the keyboard frozen - this allows us to use ReplayKeyboard
|
||||||
@ -1861,7 +1861,7 @@ process_iso_next_group (MetaDisplay *display,
|
|||||||
{
|
{
|
||||||
MetaKeyBindingManager *keys = &display->key_binding_manager;
|
MetaKeyBindingManager *keys = &display->key_binding_manager;
|
||||||
gboolean activate;
|
gboolean activate;
|
||||||
MetaKeyDevirtCombo devirt_combo;
|
MetaResolvedKeyCombo resolved_combo;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (event->type == CLUTTER_KEY_RELEASE)
|
if (event->type == CLUTTER_KEY_RELEASE)
|
||||||
@ -1869,14 +1869,14 @@ process_iso_next_group (MetaDisplay *display,
|
|||||||
|
|
||||||
activate = FALSE;
|
activate = FALSE;
|
||||||
|
|
||||||
devirt_combo_from_event_params (&devirt_combo, keys,
|
resolved_combo_from_event_params (&resolved_combo, keys,
|
||||||
event->hardware_keycode,
|
event->hardware_keycode,
|
||||||
event->modifier_state);
|
event->modifier_state);
|
||||||
|
|
||||||
for (i = 0; i < keys->n_iso_next_group_combos; ++i)
|
for (i = 0; i < keys->n_iso_next_group_combos; ++i)
|
||||||
{
|
{
|
||||||
if (devirt_combo.keycode == keys->iso_next_group_combos[i].keycode &&
|
if (resolved_combo.keycode == keys->iso_next_group_combos[i].keycode &&
|
||||||
devirt_combo.mask == keys->iso_next_group_combos[i].mask)
|
resolved_combo.mask == keys->iso_next_group_combos[i].mask)
|
||||||
{
|
{
|
||||||
/* If the signal handler returns TRUE the keyboard will
|
/* If the signal handler returns TRUE the keyboard will
|
||||||
remain frozen. It's the signal handler's responsibility
|
remain frozen. It's the signal handler's responsibility
|
||||||
|
Loading…
x
Reference in New Issue
Block a user