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:
Julian Orth 2026-01-22 19:05:27 +01:00
commit e17d31c4ed
2 changed files with 12 additions and 6 deletions

View file

@ -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

View file

@ -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;
}
}