macos: reload IOSurface when monitor configuration changes
authorChristian Hergert <christian@hergert.me>
Tue, 22 Feb 2022 08:33:03 +0000 (00:33 -0800)
committerChristian Hergert <christian@hergert.me>
Tue, 22 Feb 2022 20:01:29 +0000 (12:01 -0800)
We also want to reload buffer contents if the display server changes the
monitor configuration, such as after changing resolution or orientation.

gdk/macos/gdkmacosdisplay.c

index a8af833eb59283055a0130aaea225c39c3627314..74095504a2d6edda2dd12c7589df694d5b230131 100644 (file)
@@ -173,8 +173,7 @@ gdk_macos_display_monitors_changed_cb (CFNotificationCenterRef  center,
   _gdk_macos_display_reload_monitors (self);
 
   /* Now we need to update all our surface positions since they
-   * probably just changed origins. We ignore the popup surfaces
-   * since we can rely on the toplevel surfaces to handle that.
+   * probably just changed origins.
    */
   for (const GList *iter = _gdk_macos_display_get_surfaces (self);
        iter != NULL;
@@ -184,8 +183,7 @@ gdk_macos_display_monitors_changed_cb (CFNotificationCenterRef  center,
 
       g_assert (GDK_IS_MACOS_SURFACE (surface));
 
-      if (GDK_IS_TOPLEVEL (surface))
-        _gdk_macos_surface_configure (surface);
+      _gdk_macos_surface_monitor_changed (surface);
     }
 }