From 2a2843c041d8d20da7ddd130812451bc93f83e42 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 18 Jun 2010 22:27:26 -0400 Subject: [PATCH] Prevent concurrent use of GTK+ 2 and 3 If we detect a gtk2-only symbol, error out early. --- gtk/gtkmain.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 017d000de1..22206587f8 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -607,6 +607,22 @@ setlocale_initialization (void) } } +static void +check_mixed_deps (void) +{ + GModule *module; + gpointer func; + + module = g_module_open (NULL, 0); + + if (g_module_symbol (module, "gtk_progress_get_type", &func)) + { + g_error ("GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported"); + } + + g_module_close (module); +} + static void do_pre_parse_initialization (int *argc, char ***argv) @@ -618,6 +634,8 @@ do_pre_parse_initialization (int *argc, pre_initialized = TRUE; + check_mixed_deps (); + gdk_pre_parse_libgtk_only (); gdk_event_handler_set ((GdkEventFunc)gtk_main_do_event, NULL, NULL);