macos: fix window drag across mixed-scale monitors
authorChristian Hergert <christian@hergert.me>
Thu, 17 Feb 2022 01:09:48 +0000 (17:09 -0800)
committerChristian Hergert <christian@hergert.me>
Tue, 22 Feb 2022 20:01:29 +0000 (12:01 -0800)
If we have a 2x scale laptop with a 1x scale external display, we would
need to create a new IOSurface for the external display once it crosses
a boundary, otherwise we won't have something capable of displaying
correctly on the second monitor.

gdk/macos/gdkmacossurface.c

index fe7c7cc34f4f30b95f62dfdad187516be8aa84e1..cc7bbd9b9b572bf549c7a5b51d878b56ee7ad136 100644 (file)
@@ -1017,6 +1017,9 @@ _gdk_macos_surface_monitor_changed (GdkMacosSurface *self)
       g_object_unref (monitor);
     }
 
+  /* We need to create a new IOSurface for this monitor */
+  g_clear_object (&self->buffer);
+
   _gdk_macos_surface_configure (self);
 
   gdk_surface_invalidate_rect (GDK_SURFACE (self), NULL);