Previously, we would clear out the real modmask when updating the
modmask for action maps, if not using the key's modmask. The correct
behaviour here is instead to use the key's modmask if using the modmap,
else use the real mods provided with the action originally.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
case XkbSA_SetMods:
case XkbSA_LatchMods:
case XkbSA_LockMods:
- if (act->mods.flags & XkbSA_UseModMapMods) {
+ if (act->mods.flags & XkbSA_UseModMapMods)
act->mods.real_mods = rmodmask;
- act->mods.mask = act->mods.real_mods;
- }
- else {
- act->mods.mask = 0;
- }
+ act->mods.mask = act->mods.real_mods;
act->mods.mask |= VModsToReal(xkb, act->mods.vmods);
break;
case XkbSA_ISOLock:
- if (act->iso.flags & XkbSA_UseModMapMods) {
+ if (act->iso.flags & XkbSA_UseModMapMods)
act->iso.real_mods = rmodmask;
- act->iso.mask = act->iso.real_mods;
- }
- else {
- act->iso.mask = 0;
- }
+ act->iso.mask = act->iso.real_mods;
act->iso.mask |= VModsToReal(xkb, act->iso.vmods);
break;
default: