gdk/wayland: Avoid idempotent wl_subsurface.set_position calls
authorCarlos Garnacho <carlosg@gnome.org>
Thu, 5 Oct 2017 23:06:03 +0000 (01:06 +0200)
committerJeremy Bicha <jbicha@debian.org>
Mon, 16 Oct 2017 12:26:07 +0000 (13:26 +0100)
These may not result on wl_surface.frame callbacks, yet we do trigger
a frame clock tick that would get stuck on the lack of such callback.

https://bugzilla.gnome.org/show_bug.cgi?id=784314
https://launchpad.net/bugs/1719043
https://bugs.debian.org/875826

Gbp-Pq: Name 0004-fix-gtkentry-wayland-regression.patch

gdk/wayland/gdkwindow-wayland.c

index c87d6d9ce7e79bef93fabe274fac9d6e31a6c333..1303c8a9957f2ccfbbda64645da29a72399985df 100644 (file)
@@ -2663,7 +2663,8 @@ gdk_window_wayland_move_resize (GdkWindow *window,
   if (with_move)
     {
       /* Each toplevel has in its own "root" coordinate system */
-      if (GDK_WINDOW_TYPE (window) != GDK_WINDOW_TOPLEVEL)
+      if (GDK_WINDOW_TYPE (window) != GDK_WINDOW_TOPLEVEL &&
+          (window->x != x || window->y != y))
         {
           window->x = x;
           window->y = y;