diff options
-rw-r--r-- | gtk/gtkactionhelper.c | 34 | ||||
-rw-r--r-- | gtk/gtkdebug.h | 3 | ||||
-rw-r--r-- | gtk/gtkmain.c | 3 |
3 files changed, 36 insertions, 4 deletions
diff --git a/gtk/gtkactionhelper.c b/gtk/gtkactionhelper.c index 3dca4c9d3f..6ba5985d3f 100644 --- a/gtk/gtkactionhelper.c +++ b/gtk/gtkactionhelper.c @@ -22,6 +22,7 @@ #include "gtkwidget.h" #include "gtkwidgetprivate.h" +#include "gtkdebug.h" #include <string.h> @@ -121,16 +122,29 @@ gtk_action_helper_action_added (GtkActionHelper *helper, GVariant *state, gboolean should_emit_signals) { + GTK_NOTE(ACTIONS, g_message("actionhelper: %s added", helper->action_name)); + /* we can only activate if we have the correct type of parameter */ helper->can_activate = (helper->target == NULL && parameter_type == NULL) || (helper->target != NULL && parameter_type != NULL && g_variant_is_of_type (helper->target, parameter_type)); if (!helper->can_activate) - return; + { + GTK_NOTE(ACTIONS, g_message("actionhelper: %s found, but disabled due to parameter type mismatch", + helper->action_name)); + return; + } + + GTK_NOTE(ACTIONS, g_message ("actionhelper: %s can be activated", helper->action_name)); helper->enabled = enabled; + if (!enabled) + GTK_NOTE(ACTIONS, g_message("actionhelper: %s found, but disabled due to disabled action", helper->action_name)); + else + GTK_NOTE(ACTIONS, g_message("actionhelper: %s found and enabled", helper->action_name)); + if (helper->target != NULL && state != NULL) helper->active = g_variant_equal (state, helper->target); @@ -150,6 +164,8 @@ gtk_action_helper_action_added (GtkActionHelper *helper, static void gtk_action_helper_action_removed (GtkActionHelper *helper) { + GTK_NOTE(ACTIONS, g_message ("actionhelper: %s was removed", helper->action_name)); + if (!helper->can_activate) return; @@ -172,6 +188,8 @@ static void gtk_action_helper_action_enabled_changed (GtkActionHelper *helper, gboolean enabled) { + GTK_NOTE(ACTIONS, g_message ("actionhelper: %s enabled changed: %d", helper->action_name, enabled)); + if (!helper->can_activate) return; @@ -188,6 +206,8 @@ gtk_action_helper_action_state_changed (GtkActionHelper *helper, { gboolean was_active; + GTK_NOTE(ACTIONS, g_message ("actionhelper: %s state changed", helper->action_name)); + if (!helper->can_activate) return; @@ -359,6 +379,11 @@ gtk_action_helper_set_action_name (GtkActionHelper *helper, if (g_strcmp0 (action_name, helper->action_name) == 0) return; + GTK_NOTE(ACTIONS, + if (!strchr (action_name, '.')) + g_message ("actionhelper: action name %s doesn't look like 'app.' or 'win.' " + "which means that it will probably not work properly.", action_name)); + if (helper->action_name) { gtk_action_observable_unregister_observer (GTK_ACTION_OBSERVABLE (helper->action_context), @@ -382,13 +407,18 @@ gtk_action_helper_set_action_name (GtkActionHelper *helper, if (g_action_group_query_action (G_ACTION_GROUP (helper->action_context), helper->action_name, &enabled, ¶meter_type, NULL, NULL, &state)) { + GTK_NOTE(ACTIONS, g_message ("actionhelper: %s existed from the start", helper->action_name)); + gtk_action_helper_action_added (helper, enabled, parameter_type, state, FALSE); if (state) g_variant_unref (state); } else - helper->enabled = FALSE; + { + GTK_NOTE(ACTIONS, g_message ("actionhelper: %s missing from the start", helper->action_name)); + helper->enabled = FALSE; + } /* Send the notifies for the properties that changed. * diff --git a/gtk/gtkdebug.h b/gtk/gtkdebug.h index 8b1d2cb269..e7ae8ae8b2 100644 --- a/gtk/gtkdebug.h +++ b/gtk/gtkdebug.h @@ -53,7 +53,8 @@ typedef enum { GTK_DEBUG_PIXEL_CACHE = 1 << 15, GTK_DEBUG_NO_PIXEL_CACHE = 1 << 16, GTK_DEBUG_INTERACTIVE = 1 << 17, - GTK_DEBUG_TOUCHSCREEN = 1 << 18 + GTK_DEBUG_TOUCHSCREEN = 1 << 18, + GTK_DEBUG_ACTIONS = 1 << 19 } GtkDebugFlag; #ifdef G_ENABLE_DEBUG diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 16e0fdcb82..10a804a747 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -178,7 +178,8 @@ static const GDebugKey gtk_debug_keys[] = { {"pixel-cache", GTK_DEBUG_PIXEL_CACHE}, {"no-pixel-cache", GTK_DEBUG_NO_PIXEL_CACHE}, {"interactive", GTK_DEBUG_INTERACTIVE}, - {"touchscreen", GTK_DEBUG_TOUCHSCREEN} + {"touchscreen", GTK_DEBUG_TOUCHSCREEN}, + {"actions", GTK_DEBUG_ACTIONS}, }; #endif /* G_ENABLE_DEBUG */ |