This bug origns from appmenu-gtk and affects multi-thread applications based on gthread. To fix in bridge.c item_activated function should use gdk_threads_enter and gdk_threads_leave:
static void item_activated (DbusmenuMenuitem *item, guint timestamp, gpointer user_data) { GtkWidget *child;
if (user_data != NULL) { child = (GtkWidget *)user_data;
if (GTK_IS_MENU_ITEM (child)) { gdk_threads_enter (); gtk_menu_item_activate (GTK_MENU_ITEM (child)); gdk_threads_leave (); } } }
This bug origns from appmenu-gtk and affects multi-thread applications based on gthread.
To fix in bridge.c item_activated function should use gdk_threads_enter and gdk_threads_leave:
static void
item_activated (DbusmenuMenuitem *item, guint timestamp, gpointer user_data)
{
GtkWidget *child;
if (user_data != NULL)
{
child = (GtkWidget *)user_data;
if (GTK_IS_MENU_ITEM (child))
gdk_ threads_ enter ();
gtk_ menu_item_ activate (GTK_MENU_ITEM (child));
gdk_ threads_ leave ();
{
}
}
}