50 lines
1.2 KiB
Diff
50 lines
1.2 KiB
Diff
From 2a2843c041d8d20da7ddd130812451bc93f83e42 Mon Sep 17 00:00:00 2001
|
|
From: Matthias Clasen <mclasen@redhat.com>
|
|
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 files changed, 18 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
|
|
index 017d000..2220658 100644
|
|
--- a/gtk/gtkmain.c
|
|
+++ b/gtk/gtkmain.c
|
|
@@ -608,6 +608,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);
|
|
|
|
--
|
|
1.7.1
|
|
|