summaryrefslogtreecommitdiff
path: root/src/managers/input/InputMethodRelay.cpp
diff options
context:
space:
mode:
authorJunxuan Liao <70618504+MikeWalrus@users.noreply.github.com>2024-04-07 22:15:50 +0800
committerGitHub <noreply@github.com>2024-04-07 15:15:50 +0100
commitd657b59f701a65c7a85986e8d99754716468ee5b (patch)
tree633d9ad270eb1f2455641d2c2fa708c7e1759b38 /src/managers/input/InputMethodRelay.cpp
parentf2a848cbcc41f29fb62ee67aef95136ae1a650da (diff)
IME: fix IME popup mouse inputs (again) (#5417)
`lastBoxLocal`'s size should be the actual popup's size instead of the cursor rectangle's size. Also, the rectangle position is now relative to the popup. (Actually fixes #5255 imho.) One thing #3922 missed was handling focus held by buttons. Let's hope I get it right this time.
Diffstat (limited to 'src/managers/input/InputMethodRelay.cpp')
-rw-r--r--src/managers/input/InputMethodRelay.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/managers/input/InputMethodRelay.cpp b/src/managers/input/InputMethodRelay.cpp
index 8c21247a..a2d75f20 100644
--- a/src/managers/input/InputMethodRelay.cpp
+++ b/src/managers/input/InputMethodRelay.cpp
@@ -221,3 +221,12 @@ CInputPopup* CInputMethodRelay::popupFromCoords(const Vector2D& point) {
return nullptr;
}
+
+CInputPopup* CInputMethodRelay::popupFromSurface(const wlr_surface* surface) {
+ for (auto& p : m_vIMEPopups) {
+ if (p->getWlrSurface() == surface)
+ return p.get();
+ }
+
+ return nullptr;
+}