From 4dca9964465d30608929b79980e87a94b5d3d542 Mon Sep 17 00:00:00 2001 From: Naoto Kondo Date: Tue, 21 Jul 2026 01:08:21 +0900 Subject: [PATCH] Wayland: Fix IME popup position under fractional scaling on KDE Plasma (cherry picked from commit 5bb2d5dc2b0dbae622c1c0f12bee5fd4074d90fc) --- platform/linuxbsd/wayland/wayland_thread.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/platform/linuxbsd/wayland/wayland_thread.cpp b/platform/linuxbsd/wayland/wayland_thread.cpp index f05c8fc59e..08f54008c2 100644 --- a/platform/linuxbsd/wayland/wayland_thread.cpp +++ b/platform/linuxbsd/wayland/wayland_thread.cpp @@ -5799,7 +5799,10 @@ void WaylandThread::window_set_ime_position(const Point2i &p_pos, DisplayServerE SeatState *ss = wl_seat_get_seat_state(wl_seat_current); if (ss && ss->wp_text_input && ss->ime_enabled) { - ss->ime_rect = Rect2i(p_pos, Size2i(1, 10)); + WindowState *ws = window_get_state(p_window_id); + double scale = ws ? window_state_get_scale_factor(ws) : 1.0; + Point2i logical_pos = scale_vector2i(p_pos, 1.0 / scale); + ss->ime_rect = Rect2i(logical_pos, Size2i(1, 10)); zwp_text_input_v3_set_cursor_rectangle(ss->wp_text_input, ss->ime_rect.position.x, ss->ime_rect.position.y, ss->ime_rect.size.x, ss->ime_rect.size.y); zwp_text_input_v3_commit(ss->wp_text_input); }