+static void
+gtk_button_set_action_name (GtkActionable *actionable,
+ const gchar *action_name)
+{
+ GtkButton *button = GTK_BUTTON (actionable);
+
+ g_return_if_fail (button->priv->action == NULL);
+
+ if (!button->priv->action_helper)
+ button->priv->action_helper = gtk_action_helper_new (actionable);
+
+ g_signal_handlers_disconnect_by_func (button, gtk_real_button_clicked, NULL);
+ if (action_name)
+ g_signal_connect_after (button, "clicked", G_CALLBACK (gtk_real_button_clicked), NULL);
+
+ gtk_action_helper_set_action_name (button->priv->action_helper, action_name);
+}
+
+static void
+gtk_button_set_action_target_value (GtkActionable *actionable,
+ GVariant *action_target)
+{
+ GtkButton *button = GTK_BUTTON (actionable);
+
+ if (!button->priv->action_helper)
+ button->priv->action_helper = gtk_action_helper_new (actionable);
+
+ gtk_action_helper_set_action_target_value (button->priv->action_helper, action_target);
+}
+