From 7062a374ee0f74e728d80f27844cf1da2438c7f9 Mon Sep 17 00:00:00 2001 From: Luca Bacci Date: Tue, 19 Sep 2023 18:46:41 +0200 Subject: [PATCH] GdkWin32: Unref GdkMonitor after calling gdk_monitor_invalidate () Ensure that we have a reference when calling gdk_monitor_invalidate () Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/6080 --- gdk/win32/gdkdisplay-win32.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gdk/win32/gdkdisplay-win32.c b/gdk/win32/gdkdisplay-win32.c index 441f7fc914..d0f6a5bf49 100644 --- a/gdk/win32/gdkdisplay-win32.c +++ b/gdk/win32/gdkdisplay-win32.c @@ -286,15 +286,16 @@ _gdk_win32_display_init_monitors (GdkWin32Display *win32_display) GdkMonitor *ex_monitor; w32_ex_monitor = GDK_WIN32_MONITOR (g_list_model_get_item (win32_display->monitors, i)); - g_object_unref (w32_ex_monitor); ex_monitor = GDK_MONITOR (w32_ex_monitor); - if (!w32_ex_monitor->remove) - continue; + if (w32_ex_monitor->remove) + { + w32_ex_monitor->hmonitor = NULL; + g_list_store_remove (G_LIST_STORE (win32_display->monitors), i); + gdk_monitor_invalidate (ex_monitor); + } - w32_ex_monitor->hmonitor = NULL; - g_list_store_remove (G_LIST_STORE (win32_display->monitors), i); - gdk_monitor_invalidate (ex_monitor); + g_object_unref (w32_ex_monitor); } for (i = 0; i < new_monitors->len; i++) -- 2.30.2