From 8b49ebe34f2c95cdffb8410d39576a940ef07d41 Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Mon, 11 Nov 2024 12:53:39 +0800 Subject: [PATCH] gdkevents-win32.c: Avoid crash in SetTimer() Since we only support a single GdkDisplay for Windows, make use of it to ensure we always obtain a proper GdkDisplay to check whether a modal operation is in progress. This should fix issue #7147. --- gdk/win32/gdkevents-win32.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 1fe362d08e..7d365fabc9 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -1365,7 +1365,9 @@ modal_timer_proc (HWND hwnd, DWORD time) { int arbitrary_limit = 10; - GdkWin32Display *display = GDK_WIN32_DISPLAY (gdk_surface_get_display (GDK_SURFACE (id))); + + /* todo: if we support multiple GdkDisplay's on Windows? */ + GdkWin32Display *display = GDK_WIN32_DISPLAY (gdk_display_get_default ()); while (display->display_surface_record->modal_operation_in_progress != GDK_WIN32_MODAL_OP_NONE && g_main_context_pending (NULL) &&