input/ti: avoid sending events to inactive TIs

ref https://github.com/hyprwm/Hyprland/discussions/12105
This commit is contained in:
Vaxry 2026-01-01 14:48:32 +01:00
parent 48a024e032
commit bd7f9aad05
No known key found for this signature in database
GPG key ID: 665806380871D640
3 changed files with 10 additions and 0 deletions

View file

@ -75,6 +75,11 @@ CTextInput* CInputMethodRelay::getFocusedTextInput() {
if (!Desktop::focusState()->surface())
return nullptr;
for (auto const& ti : m_textInputs) {
if (ti->focusedSurface() == Desktop::focusState()->surface() && ti->isEnabled())
return ti.get();
}
for (auto const& ti : m_textInputs) {
if (ti->focusedSurface() == Desktop::focusState()->surface())
return ti.get();

View file

@ -305,3 +305,7 @@ bool CTextInput::hasCursorRectangle() {
CBox CTextInput::cursorBox() {
return CBox{isV3() ? m_v3Input->m_current.box.cursorBox : m_v1Input->m_cursorRectangle};
}
bool CTextInput::isEnabled() {
return isV3() ? m_v3Input->m_current.enabled.value : true;
}

View file

@ -29,6 +29,7 @@ class CTextInput {
void onCommit();
void onReset();
bool isEnabled();
bool hasCursorRectangle();
CBox cursorBox();