[gtk/wip/carlosg/backports-4-6: 8/9] gtkimcontextwayland: Add native surface offset to input coordinates
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/carlosg/backports-4-6: 8/9] gtkimcontextwayland: Add native surface offset to input coordinates
- Date: Wed, 16 Mar 2022 18:52:55 +0000 (UTC)
commit d808298b68b919b4cd9eb834b2da8d0d72759c55
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Mar 16 09:55:20 2022 +0100
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
gtk/gtkimcontextwayland.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
---
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);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]