]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkactionhelper.c
Ensure the insertion handle stays on fake events (eg from IM)
[~andy/gtk] / gtk / gtkactionhelper.c
index 6047a43cf98d5017772fba68e89ecba25a7d4785..0445a5eb558aff237d883fa62e72e0041528d933 100644 (file)
@@ -189,7 +189,7 @@ gtk_action_helper_action_removed (GtkActionHelper *helper)
 
   if (helper->active)
     {
-      helper->enabled = FALSE;
+      helper->active = FALSE;
       gtk_action_helper_report_change (helper, PROP_ACTIVE);
     }
 
@@ -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;