[mutter/gnome-3-34] wayland/surface: Don't double scale when getting absolute coordinates



commit cf78598974b12be0d7fa67f6022abf0eac078b2b
Author: Xiang Fan <sfanxiang gmail com>
Date:   Sat Nov 2 15:05:57 2019 -0400

    wayland/surface: Don't double scale when getting absolute coordinates
    
    The actor is already in surface coordinate space, so we should not scale
    with the buffer scale to transform surface coordinates to stage
    coordinates.
    
    This bug causes input method using wayland text-input protocol to
    receive wrong cursor location. Reproduced in ibus (when candidate
    window is open) with scaling factor other than 1.
    
    This commit also fixes pointer confinement.
    
    https://gitlab.gnome.org/GNOME/mutter/merge_requests/915

 src/wayland/meta-wayland-surface.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c
index 163b7c515..56d292517 100644
--- a/src/wayland/meta-wayland-surface.c
+++ b/src/wayland/meta-wayland-surface.c
@@ -1647,8 +1647,8 @@ meta_wayland_surface_get_absolute_coordinates (MetaWaylandSurface *surface,
   ClutterActor *actor =
     CLUTTER_ACTOR (meta_wayland_surface_get_actor (surface));
   ClutterVertex sv = {
-    .x = sx * surface->scale,
-    .y = sy * surface->scale,
+    .x = sx,
+    .y = sy,
   };
   ClutterVertex v = { 0 };
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]