mirror of
https://gitlab.freedesktop.org/xorg/lib/libx11.git
synced 2026-05-09 04:58:06 +02:00
Merge branch 'jorth/unrelated-kb-changes' into 'master'
Ignore XkbMapNotify events that don't belong to the core keyboard See merge request xorg/lib/libx11!293
This commit is contained in:
commit
e17d31c4ed
2 changed files with 12 additions and 6 deletions
|
|
@ -369,6 +369,8 @@ XkbRefreshKeyboardMapping(register XkbMapNotifyEvent * event)
|
|||
XkbMapChangesRec changes;
|
||||
Status rtrn;
|
||||
|
||||
if (!xkbi->desc || xkbi->desc->device_spec != event->device)
|
||||
return Success;
|
||||
if (xkbi->flags & XkbMapPending)
|
||||
changes = xkbi->changes;
|
||||
else
|
||||
|
|
|
|||
|
|
@ -290,9 +290,11 @@ wire_to_event(Display *dpy, XEvent *re, xEvent *event)
|
|||
mev->num_modmap_keys = mn->nModMapKeys;
|
||||
mev->first_vmodmap_key = mn->firstVModMapKey;
|
||||
mev->num_vmodmap_keys = mn->nVModMapKeys;
|
||||
XkbNoteMapChanges(&xkbi->changes, mev, XKB_XLIB_MAP_MASK);
|
||||
if (xkbi->changes.changed)
|
||||
xkbi->flags |= XkbMapPending;
|
||||
if (xkbi->desc && xkbi->desc->device_spec == mn->deviceID) {
|
||||
XkbNoteMapChanges(&xkbi->changes, mev, XKB_XLIB_MAP_MASK);
|
||||
if (xkbi->changes.changed)
|
||||
xkbi->flags |= XkbMapPending;
|
||||
}
|
||||
return True;
|
||||
}
|
||||
else if (mn->nKeySyms > 0) {
|
||||
|
|
@ -306,9 +308,11 @@ wire_to_event(Display *dpy, XEvent *re, xEvent *event)
|
|||
ev->first_keycode = mn->firstKeySym;
|
||||
ev->request = MappingKeyboard;
|
||||
ev->count = mn->nKeySyms;
|
||||
_XkbNoteCoreMapChanges(&xkbi->changes, ev, XKB_XLIB_MAP_MASK);
|
||||
if (xkbi->changes.changed)
|
||||
xkbi->flags |= XkbMapPending;
|
||||
if (xkbi->desc && xkbi->desc->device_spec == mn->deviceID) {
|
||||
_XkbNoteCoreMapChanges(&xkbi->changes, ev, XKB_XLIB_MAP_MASK);
|
||||
if (xkbi->changes.changed)
|
||||
xkbi->flags |= XkbMapPending;
|
||||
}
|
||||
return True;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue