From: Carlos Garnacho Date: Wed, 16 Mar 2022 08:55:20 +0000 (+0100) Subject: gtkimcontextwayland: Add native surface offset to input coordinates X-Git-Tag: archive/raspbian/4.6.5+ds-1+rpi1~1^2~19^2~3^2~6^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d808298b68b919b4cd9eb834b2da8d0d72759c55;p=gtk4.git gtkimcontextwayland: Add native surface offset to input coordinates We were missing the surface offset (e.g. shadows) at the time of expressing the text caret location in surface coordinates. Add this offset so the coordinates are as expected by the compositor. Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4668 --- diff --git a/gtk/gtkimcontextwayland.c b/gtk/gtkimcontextwayland.c index 60e1e466bf..e0259d0182 100644 --- a/gtk/gtkimcontextwayland.c +++ b/gtk/gtkimcontextwayland.c @@ -357,7 +357,7 @@ notify_cursor_location (GtkIMContextWayland *context) { GtkIMContextWaylandGlobal *global; cairo_rectangle_int_t rect; - double x, y; + double x, y, sx, sy; global = gtk_im_context_wayland_get_global (context); if (global == NULL) @@ -369,8 +369,11 @@ notify_cursor_location (GtkIMContextWayland *context) rect.x, rect.y, &x, &y); - rect.x = x; - rect.y = y; + gtk_native_get_surface_transform (gtk_widget_get_native (context->widget), + &sx, &sy); + + rect.x = x + sx; + rect.y = y + sy; zwp_text_input_v3_set_cursor_rectangle (global->text_input, rect.x, rect.y, rect.width, rect.height);