vkeyboard: update cached mods before IME; add share_states = 2 config option (#11720)

This commit is contained in:
JS Deck 2025-09-20 12:57:39 -03:00 committed by GitHub
parent 6a88f2e880
commit 838439080a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 28 additions and 10 deletions

View file

@ -447,3 +447,8 @@ bool IKeyboard::getPressed(uint32_t key) {
bool IKeyboard::shareStates() {
return m_shareStates;
}
void IKeyboard::setShareStatesAuto(bool shareStates) {
if (m_shareStatesAuto)
m_shareStates = shareStates;
}

View file

@ -79,6 +79,7 @@ class IKeyboard : public IHID {
void updateKeymapFD();
bool getPressed(uint32_t key);
bool shareStates();
void setShareStatesAuto(bool shareStates);
bool m_active = false;
bool m_enabled = true;
@ -131,5 +132,6 @@ class IKeyboard : public IHID {
protected:
bool updatePressed(uint32_t key, bool pressed);
bool m_shareStates = true;
bool m_shareStates = true;
bool m_shareStatesAuto = true;
};

View file

@ -44,8 +44,11 @@ CVirtualKeyboard::CVirtualKeyboard(SP<CVirtualKeyboardV1Resource> keeb_) : m_key
m_keyboardEvents.keymap.emit(event);
});
m_deviceName = keeb_->m_name;
m_shareStates = g_pConfigManager->getDeviceInt(m_deviceName, "share_states", "input:virtualkeyboard:share_states");
m_deviceName = keeb_->m_name;
const auto SHARESTATES = g_pConfigManager->getDeviceInt(m_deviceName, "share_states", "input:virtualkeyboard:share_states");
m_shareStates = SHARESTATES != 0;
m_shareStatesAuto = SHARESTATES == 2;
}
bool CVirtualKeyboard::isVirtual() {