meta_accelerator_parse(): handle keysyms without the XF86 prefix
The GDK and hence GNOME standard is that keys that begin with XF86 according to libxkbcommon not prefixed with XF86, though gdk_keyval_from_name() strips XF86 if provided. If libxkbcommon doesn't recognize the accelerator name without XF86, try again adding XF86 to the start. This restores compatibility with gnome-settings-daemon, schemas, and existing user configuration. https://bugzilla.gnome.org/show_bug.cgi?id=727993
This commit is contained in:
parent
9c6e527d4b
commit
8d29d22e99
@ -309,9 +309,16 @@ accelerator_parse (const gchar *accelerator,
|
|||||||
keyval = xkb_keysym_from_name (accelerator, XKB_KEYSYM_CASE_INSENSITIVE);
|
keyval = xkb_keysym_from_name (accelerator, XKB_KEYSYM_CASE_INSENSITIVE);
|
||||||
if (keyval == XKB_KEY_NoSymbol)
|
if (keyval == XKB_KEY_NoSymbol)
|
||||||
{
|
{
|
||||||
error = TRUE;
|
char *with_xf86 = g_strconcat ("XF86", accelerator, NULL);
|
||||||
goto out;
|
keyval = xkb_keysym_from_name (with_xf86, XKB_KEYSYM_CASE_INSENSITIVE);
|
||||||
}
|
g_free (with_xf86);
|
||||||
|
|
||||||
|
if (keyval == XKB_KEY_NoSymbol)
|
||||||
|
{
|
||||||
|
error = TRUE;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
accelerator += len;
|
accelerator += len;
|
||||||
|
Loading…
Reference in New Issue
Block a user