backend/x11: Notify whenever the layout group changes
Will be used to trigger keyboard binding rebuild. https://bugzilla.gnome.org/show_bug.cgi?id=786408
This commit is contained in:
parent
517488ef67
commit
a81d4aed7a
@ -283,8 +283,6 @@ handle_host_xevent (MetaBackend *backend,
|
|||||||
|
|
||||||
if (xkb_ev->any.device == META_VIRTUAL_CORE_KEYBOARD_ID)
|
if (xkb_ev->any.device == META_VIRTUAL_CORE_KEYBOARD_ID)
|
||||||
{
|
{
|
||||||
int layout_group;
|
|
||||||
|
|
||||||
switch (xkb_ev->any.xkb_type)
|
switch (xkb_ev->any.xkb_type)
|
||||||
{
|
{
|
||||||
case XkbNewKeyboardNotify:
|
case XkbNewKeyboardNotify:
|
||||||
@ -292,8 +290,20 @@ handle_host_xevent (MetaBackend *backend,
|
|||||||
keymap_changed (backend);
|
keymap_changed (backend);
|
||||||
break;
|
break;
|
||||||
case XkbStateNotify:
|
case XkbStateNotify:
|
||||||
|
if (xkb_ev->state.changed & XkbGroupLockMask)
|
||||||
|
{
|
||||||
|
int layout_group;
|
||||||
|
gboolean layout_group_changed;
|
||||||
|
|
||||||
layout_group = xkb_ev->state.locked_group;
|
layout_group = xkb_ev->state.locked_group;
|
||||||
|
layout_group_changed =
|
||||||
|
(int) priv->keymap_layout_group != layout_group;
|
||||||
priv->keymap_layout_group = layout_group;
|
priv->keymap_layout_group = layout_group;
|
||||||
|
|
||||||
|
if (layout_group_changed)
|
||||||
|
meta_backend_notify_keymap_layout_group_changed (backend,
|
||||||
|
layout_group);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user