Foward modifiers after disabling sticky keys
When disabling sticky keys while a key is latched or locked we unlatch the key, but don't tell the client until the next key event Call forwardModifiers to tell the client immediately
This commit is contained in:
parent
e14e4a1f8e
commit
6f410383fc
1 changed files with 3 additions and 1 deletions
|
@ -53,6 +53,7 @@ void StickyKeysFilter::loadConfig(const KConfigGroup &group)
|
||||||
if (it->second == KeyState::Locked) {
|
if (it->second == KeyState::Locked) {
|
||||||
it->second = KeyState::None;
|
it->second = KeyState::None;
|
||||||
KWin::input()->keyboard()->xkb()->setModifierLocked(keyToModifier(static_cast<Qt::Key>(it->first)), false);
|
KWin::input()->keyboard()->xkb()->setModifierLocked(keyToModifier(static_cast<Qt::Key>(it->first)), false);
|
||||||
|
KWin::input()->keyboard()->xkb()->forwardModifiers();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,11 +61,12 @@ void StickyKeysFilter::loadConfig(const KConfigGroup &group)
|
||||||
if (group.readEntry<bool>("StickyKeys", false)) {
|
if (group.readEntry<bool>("StickyKeys", false)) {
|
||||||
KWin::input()->prependInputEventFilter(this);
|
KWin::input()->prependInputEventFilter(this);
|
||||||
} else {
|
} else {
|
||||||
// sticky keys are deactivated, unlatch all latched keys
|
// sticky keys are deactivated, unlatch all latched/locked keys
|
||||||
for (auto it = m_keyStates.keyValueBegin(); it != m_keyStates.keyValueEnd(); ++it) {
|
for (auto it = m_keyStates.keyValueBegin(); it != m_keyStates.keyValueEnd(); ++it) {
|
||||||
if (it->second != KeyState::None) {
|
if (it->second != KeyState::None) {
|
||||||
it->second = KeyState::None;
|
it->second = KeyState::None;
|
||||||
KWin::input()->keyboard()->xkb()->setModifierLatched(keyToModifier(static_cast<Qt::Key>(it->first)), false);
|
KWin::input()->keyboard()->xkb()->setModifierLatched(keyToModifier(static_cast<Qt::Key>(it->first)), false);
|
||||||
|
KWin::input()->keyboard()->xkb()->forwardModifiers();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue