From d657b59f701a65c7a85986e8d99754716468ee5b Mon Sep 17 00:00:00 2001 From: Junxuan Liao <70618504+MikeWalrus@users.noreply.github.com> Date: Sun, 7 Apr 2024 22:15:50 +0800 Subject: 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. --- src/managers/input/InputMethodRelay.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/managers/input/InputMethodRelay.cpp') 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; +} -- cgit v1.2.3