From 1f20d0c9ed5d96f44ddcf5bb84bb301fc853e74c Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 15 Oct 2024 20:57:40 -0400 Subject: [PATCH] gdk: Spread the errors Call gdk_ensure_initialized() directly in gdk_display_open_default(), gdk_display_open(), gdk_x11_display_open() and gdk_display_get_default(), so we get the right function name in the error message. These functions are likely candidates that people might call without ensuring that GDK is initialized. --- gdk/gdk.c | 2 ++ gdk/gdkdisplay.c | 5 +++-- gdk/gdkdisplaymanager.c | 2 ++ gdk/x11/gdkdisplay-x11.c | 2 ++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gdk/gdk.c b/gdk/gdk.c index b67025cef0..a1122b2fec 100644 --- a/gdk/gdk.c +++ b/gdk/gdk.c @@ -366,6 +366,8 @@ gdk_display_open_default (void) { GdkDisplay *display; + gdk_ensure_initialized (); + display = gdk_display_get_default (); if (!display) diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index 9346ee8467..f00fad4a36 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -1198,8 +1198,9 @@ gdk_display_get_app_launch_context (GdkDisplay *display) GdkDisplay * gdk_display_open (const char *display_name) { - return gdk_display_manager_open_display (gdk_display_manager_get (), - display_name); + gdk_ensure_initialized (); + + return gdk_display_manager_open_display (gdk_display_manager_get (), display_name); } gulong diff --git a/gdk/gdkdisplaymanager.c b/gdk/gdkdisplaymanager.c index 7429ab18f8..93e6f712c4 100644 --- a/gdk/gdkdisplaymanager.c +++ b/gdk/gdkdisplaymanager.c @@ -332,6 +332,8 @@ gdk_display_manager_get_default_display (GdkDisplayManager *manager) GdkDisplay * gdk_display_get_default (void) { + gdk_ensure_initialized (); + return gdk_display_manager_get_default_display (gdk_display_manager_get ()); } diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index a875137037..bcf6c581dd 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -1432,6 +1432,8 @@ gdk_x11_display_open (const char *display_name) gboolean rgba; gboolean composited; + gdk_ensure_initialized (); + XInitThreads (); xdisplay = XOpenDisplay (display_name);