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
{
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)
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);