diff --git a/gtk/gtkactionhelper.c b/gtk/gtkactionhelper.c index 6047a43cf9..a3a0c46a07 100644 --- a/gtk/gtkactionhelper.c +++ b/gtk/gtkactionhelper.c @@ -523,7 +523,10 @@ gtk_action_helper_set_action_target_value (GtkActionHelper *helper, return; if (target_value && helper->target && g_variant_equal (target_value, helper->target)) - return; + { + g_variant_unref (g_variant_ref_sink (target_value)); + return; + } if (helper->target) { @@ -534,6 +537,10 @@ gtk_action_helper_set_action_target_value (GtkActionHelper *helper, if (target_value) helper->target = g_variant_ref_sink (target_value); + /* The action_name has not yet been set. Don't do anything yet. */ + if (helper->action_name == NULL) + return; + was_enabled = helper->enabled; was_active = helper->active;