mirror of
https://github.com/X11Libre/xserver.git
synced 2026-10-16 00:19:55 +00:00
XkbCopyKeymap: optionally send NewKeyboardNotify/MapNotify events
Optionally send a NewKeyboardNotify or MapNotify event when copying the keymap; modify GetKeyboardValuatorEvents to make use of this.
This commit is contained in:
parent
728fbadd16
commit
6323a11d0d
3 changed files with 76 additions and 28 deletions
26
dix/events.c
26
dix/events.c
|
|
@ -4655,9 +4655,6 @@ int GetKeyboardValuatorEvents(xEvent *events, DeviceIntPtr pDev, int type,
|
|||
deviceKeyButtonPointer *kbp = NULL;
|
||||
deviceValuator *xv = NULL;
|
||||
KeyClassPtr ckeyc;
|
||||
#ifdef XKB
|
||||
xkbMapNotify mn;
|
||||
#endif
|
||||
|
||||
if (!events)
|
||||
return 0;
|
||||
|
|
@ -4781,28 +4778,7 @@ int GetKeyboardValuatorEvents(xEvent *events, DeviceIntPtr pDev, int type,
|
|||
#ifdef XKB
|
||||
if (!noXkbExtension && pDev->key->xkbInfo &&
|
||||
pDev->key->xkbInfo->desc) {
|
||||
mn.deviceID = inputInfo.keyboard->id;
|
||||
mn.minKeyCode = pDev->key->xkbInfo->desc->min_key_code;
|
||||
mn.maxKeyCode = pDev->key->xkbInfo->desc->max_key_code;
|
||||
mn.firstType = 0;
|
||||
mn.nTypes = pDev->key->xkbInfo->desc->map->num_types;
|
||||
mn.firstKeySym = pDev->key->xkbInfo->desc->min_key_code;
|
||||
mn.nKeySyms = XkbNumKeys(pDev->key->xkbInfo->desc);
|
||||
mn.firstKeyAct = pDev->key->xkbInfo->desc->min_key_code;
|
||||
mn.nKeyActs = XkbNumKeys(pDev->key->xkbInfo->desc);
|
||||
/* Cargo-culted from ProcXkbGetMap. */
|
||||
mn.firstKeyBehavior = pDev->key->xkbInfo->desc->min_key_code;
|
||||
mn.nKeyBehaviors = XkbNumKeys(pDev->key->xkbInfo->desc);
|
||||
mn.firstKeyExplicit = pDev->key->xkbInfo->desc->min_key_code;
|
||||
mn.nKeyExplicit = XkbNumKeys(pDev->key->xkbInfo->desc);
|
||||
mn.firstModMapKey = pDev->key->xkbInfo->desc->min_key_code;
|
||||
mn.nModMapKeys = XkbNumKeys(pDev->key->xkbInfo->desc);
|
||||
mn.firstVModMapKey = pDev->key->xkbInfo->desc->min_key_code;
|
||||
mn.nVModMapKeys = XkbNumKeys(pDev->key->xkbInfo->desc);
|
||||
mn.virtualMods = ~0; /* ??? */
|
||||
mn.changed = XkbAllMapComponentsMask;
|
||||
|
||||
if (!XkbCopyKeymap(pDev->key->xkbInfo, ckeyc->xkbInfo))
|
||||
if (!XkbCopyKeymap(pDev->key->xkbInfo, ckeyc->xkbInfo, True))
|
||||
FatalError("Couldn't pivot keymap from device to core!\n");
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue