[gtk+] modelbutton: Use indicator state for button gadget if iconic
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] modelbutton: Use indicator state for button gadget if iconic
- Date: Wed, 27 Jan 2016 15:35:02 +0000 (UTC)
commit 299b32438d2d0f508183ab557c68d8cab13572fc
Author: Timm Bäder <mail baedert org>
Date: Wed Jan 27 16:32:39 2016 +0100
modelbutton: Use indicator state for button gadget if iconic
gtk/gtkmodelbutton.c | 18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)
---
diff --git a/gtk/gtkmodelbutton.c b/gtk/gtkmodelbutton.c
index 1446aab..cbeab65 100644
--- a/gtk/gtkmodelbutton.c
+++ b/gtk/gtkmodelbutton.c
@@ -197,9 +197,11 @@ static void
gtk_model_button_update_state (GtkModelButton *button)
{
GtkStateFlags state;
+ GtkStateFlags indicator_state;
GtkCssImageBuiltinType image_type = GTK_CSS_IMAGE_BUILTIN_NONE;
state = gtk_widget_get_state_flags (GTK_WIDGET (button));
+ indicator_state = state;
gtk_css_gadget_set_state (button->gadget, state);
@@ -207,12 +209,12 @@ gtk_model_button_update_state (GtkModelButton *button)
{
if (button->active && !button->menu_name)
{
- state |= GTK_STATE_FLAG_CHECKED;
+ indicator_state |= GTK_STATE_FLAG_CHECKED;
image_type = GTK_CSS_IMAGE_BUILTIN_CHECK_CHECKED;
}
else
{
- state &= ~GTK_STATE_FLAG_CHECKED;
+ indicator_state &= ~GTK_STATE_FLAG_CHECKED;
image_type = GTK_CSS_IMAGE_BUILTIN_CHECK;
}
}
@@ -220,12 +222,12 @@ gtk_model_button_update_state (GtkModelButton *button)
{
if (button->active && !button->menu_name)
{
- state |= GTK_STATE_FLAG_CHECKED;
+ indicator_state |= GTK_STATE_FLAG_CHECKED;
image_type = GTK_CSS_IMAGE_BUILTIN_OPTION_CHECKED;
}
else
{
- state &= ~GTK_STATE_FLAG_CHECKED;
+ indicator_state &= ~GTK_STATE_FLAG_CHECKED;
image_type = GTK_CSS_IMAGE_BUILTIN_OPTION;
}
}
@@ -239,7 +241,13 @@ gtk_model_button_update_state (GtkModelButton *button)
}
gtk_builtin_icon_set_image (GTK_BUILTIN_ICON (button->indicator_gadget), image_type);
- gtk_css_gadget_set_state (button->indicator_gadget, state);
+
+ if (button->iconic)
+ gtk_css_gadget_set_state (button->gadget, indicator_state);
+ else
+ gtk_css_gadget_set_state (button->gadget, state);
+
+ gtk_css_gadget_set_state (button->indicator_gadget, indicator_state);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]