Prevent concurrent use of GTK+ 2 and 3
If we detect a gtk3-only symbol, error out early.
This commit is contained in:
@ -627,6 +627,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_widget_device_is_shadowed", &func))
|
||||||
|
{
|
||||||
|
g_error ("GTK+ 3 symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
g_module_close (module);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
do_pre_parse_initialization (int *argc,
|
do_pre_parse_initialization (int *argc,
|
||||||
char ***argv)
|
char ***argv)
|
||||||
@ -645,6 +661,8 @@ do_pre_parse_initialization (int *argc,
|
|||||||
|
|
||||||
pre_initialized = TRUE;
|
pre_initialized = TRUE;
|
||||||
|
|
||||||
|
check_mixed_deps ();
|
||||||
|
|
||||||
gdk_pre_parse_libgtk_only ();
|
gdk_pre_parse_libgtk_only ();
|
||||||
gdk_event_handler_set ((GdkEventFunc)gtk_main_do_event, NULL, NULL);
|
gdk_event_handler_set ((GdkEventFunc)gtk_main_do_event, NULL, NULL);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user