diff --git a/gtk/gtkdebug.h b/gtk/gtkdebug.h index f334fce2af..c74553fbbe 100644 --- a/gtk/gtkdebug.h +++ b/gtk/gtkdebug.h @@ -25,7 +25,8 @@ extern "C" { typedef enum { GTK_DEBUG_OBJECTS = 1<<0, - GTK_DEBUG_MISC = 1<<1 + GTK_DEBUG_MISC = 1<<1, + GTK_DEBUG_SIGNALS = 1<<2 } GtkDebugFlag; #ifdef G_ENABLE_DEBUG diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index d2b651a278..a04d953f2f 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -217,7 +217,8 @@ guint gtk_debug_flags = 0; /* Global GTK debug flag */ #ifdef G_ENABLE_DEBUG static GDebugKey gtk_debug_keys[] = { {"objects", GTK_DEBUG_OBJECTS}, - {"misc", GTK_DEBUG_MISC} + {"misc", GTK_DEBUG_MISC}, + {"signals", GTK_DEBUG_SIGNALS} }; static const guint gtk_ndebug_keys = sizeof (gtk_debug_keys) / sizeof (GDebugKey); diff --git a/gtk/gtksignal.c b/gtk/gtksignal.c index c1be0887ae..ddb18c5f35 100644 --- a/gtk/gtksignal.c +++ b/gtk/gtksignal.c @@ -1350,6 +1350,10 @@ gtk_signal_real_emit (GtkObject *object, GtkHandlerInfo info; guchar **signal_func_offset; register guint signal_id = signal->signal_id; + + if(gtk_debug_flags & GTK_DEBUG_SIGNALS) + g_print("Sending signal %s to object %p (%s)\n", + signal->name, object, gtk_type_name(object->klass->type)); if ((signal->run_type & GTK_RUN_NO_RECURSE) && gtk_emission_check (current_emissions, object, signal_id))