diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-11-07 22:22:13 +0000 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-11-07 22:22:13 +0000 |
| commit | aefc34b4050ec2d4aa70220726c168ca6ad5eea2 (patch) | |
| tree | 1f3335f839d415c68a574a95948d8b47110bc446 /src/managers/input/InputManager.cpp | |
| parent | 2a20cf5379161adc16424652313371c558b1467e (diff) | |
Minor fixes for virtual input devices
Diffstat (limited to 'src/managers/input/InputManager.cpp')
| -rw-r--r-- | src/managers/input/InputManager.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp index 3f9c3b83..9c71c982 100644 --- a/src/managers/input/InputManager.cpp +++ b/src/managers/input/InputManager.cpp @@ -52,9 +52,6 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus) { return; } - if (g_pCompositor->m_sSeat.mouse->virt) - return; // don't refocus on virt - if (!g_pCompositor->m_bDPMSStateON && *PMOUSEDPMS) { // enable dpms g_pKeybindManager->dpms("on"); @@ -861,6 +858,10 @@ void CInputManager::onKeyboardMod(void* data, SKeyboard* pKeyboard) { } } +bool CInputManager::shouldIgnoreVirtualKeyboard(SKeyboard* pKeyboard) { + return !pKeyboard || (m_sIMERelay.m_pKeyboardGrab && wl_resource_get_client(m_sIMERelay.m_pKeyboardGrab->pWlrKbGrab->resource) == wl_resource_get_client(wlr_input_device_get_virtual_keyboard(pKeyboard->keyboard)->resource)); +} + void CInputManager::refocus() { mouseMoveUnified(0, true); } @@ -1002,7 +1003,7 @@ uint32_t CInputManager::accumulateModsFromAllKBs() { uint32_t finalMask = 0; for (auto& kb : m_lKeyboards) { - if (kb.isVirtual) + if (kb.isVirtual && shouldIgnoreVirtualKeyboard(&kb)) continue; finalMask |= wlr_keyboard_get_modifiers(wlr_keyboard_from_input_device(kb.keyboard)); |
