Add _gtk_toggle_action_set_active() internal function

It's needed in gtkradioaction

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=624540
This commit is contained in:
Javier Jardón 2010-07-16 18:34:46 +02:00
parent 4682d563cf
commit 1bfa931e20
3 changed files with 26 additions and 2 deletions

View File

@ -338,7 +338,7 @@ gtk_radio_action_activate (GtkAction *action)
if (gtk_toggle_action_get_active (tmp_action) &&
(tmp_action != toggle_action))
{
gtk_toggle_action_set_active (toggle_action, !active);
_gtk_toggle_action_set_active (toggle_action, !active);
break;
}
@ -347,7 +347,7 @@ gtk_radio_action_activate (GtkAction *action)
}
else
{
gtk_toggle_action_set_active (toggle_action, !active);
_gtk_toggle_action_set_active (toggle_action, !active);
g_object_notify (G_OBJECT (action), "active");
tmp_list = radio_action->private_data->group;

View File

@ -364,3 +364,23 @@ create_menu_item (GtkAction *action)
"draw-as-radio", toggle_action->private_data->draw_as_radio,
NULL);
}
/* Private */
/*
* _gtk_toggle_action_set_active:
* @toggle_action: a #GtkToggleAction
* @is_active: whether the action is active or not
*
* Sets the #GtkToggleAction:active property directly. This function does
* not emit signals or notifications: it is left to the caller to do so.
*/
void
_gtk_toggle_action_set_active (GtkToggleAction *toggle_action,
gboolean is_active)
{
GtkToggleActionPrivate *priv = toggle_action->private_data;
priv->active = is_active;
}

View File

@ -84,6 +84,10 @@ void gtk_toggle_action_set_draw_as_radio (GtkToggleAction *action,
gboolean draw_as_radio);
gboolean gtk_toggle_action_get_draw_as_radio (GtkToggleAction *action);
/* private */
void _gtk_toggle_action_set_active (GtkToggleAction *toggle_action,
gboolean is_active);
G_END_DECLS