input/ti: avoid sending events to inactive TIs
ref https://github.com/hyprwm/Hyprland/discussions/12105
This commit is contained in:
parent
48a024e032
commit
bd7f9aad05
3 changed files with 10 additions and 0 deletions
|
|
@ -75,6 +75,11 @@ CTextInput* CInputMethodRelay::getFocusedTextInput() {
|
||||||
if (!Desktop::focusState()->surface())
|
if (!Desktop::focusState()->surface())
|
||||||
return nullptr;
|
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) {
|
for (auto const& ti : m_textInputs) {
|
||||||
if (ti->focusedSurface() == Desktop::focusState()->surface())
|
if (ti->focusedSurface() == Desktop::focusState()->surface())
|
||||||
return ti.get();
|
return ti.get();
|
||||||
|
|
|
||||||
|
|
@ -305,3 +305,7 @@ bool CTextInput::hasCursorRectangle() {
|
||||||
CBox CTextInput::cursorBox() {
|
CBox CTextInput::cursorBox() {
|
||||||
return CBox{isV3() ? m_v3Input->m_current.box.cursorBox : m_v1Input->m_cursorRectangle};
|
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;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ class CTextInput {
|
||||||
void onCommit();
|
void onCommit();
|
||||||
void onReset();
|
void onReset();
|
||||||
|
|
||||||
|
bool isEnabled();
|
||||||
bool hasCursorRectangle();
|
bool hasCursorRectangle();
|
||||||
CBox cursorBox();
|
CBox cursorBox();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue