summaryrefslogtreecommitdiff
path: root/gtk/gtkmenutoolbutton.c
diff options
context:
space:
mode:
authorMatthias Clasen <matthiasc@src.gnome.org>2005-03-01 16:07:04 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2005-03-01 16:07:04 +0000
commitaf58a0dbd819e776508420dc1d7535da49486b98 (patch)
treec6ed9d917b0f5e29b3beb33b9aeef8b6a80c803b /gtk/gtkmenutoolbutton.c
parent86db923391178872e0c91f07345fe344d68faab6 (diff)
downloadgdk-pixbuf-af58a0dbd819e776508420dc1d7535da49486b98.tar.gz
Fix prelighting. (#157392, Vincent Noel, patch by Christian Persch)
* gtk/gtkmenutoolbutton.c (button_state_changed_cb): Fix prelighting. (#157392, Vincent Noel, patch by Christian Persch)
Diffstat (limited to 'gtk/gtkmenutoolbutton.c')
-rw-r--r--gtk/gtkmenutoolbutton.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gtk/gtkmenutoolbutton.c b/gtk/gtkmenutoolbutton.c
index f7249f13d..6448d6e15 100644
--- a/gtk/gtkmenutoolbutton.c
+++ b/gtk/gtkmenutoolbutton.c
@@ -277,11 +277,17 @@ button_state_changed_cb (GtkWidget *widget,
{
gtk_widget_set_state (other, state);
}
- else if (state == GTK_STATE_ACTIVE)
+ else if (state == GTK_STATE_ACTIVE ||
+ (state == GTK_STATE_INSENSITIVE && other == priv->arrow_button))
{
gtk_widget_set_state (other, GTK_STATE_NORMAL);
}
+ if (state == GTK_STATE_INSENSITIVE && other == priv->arrow_button && button->priv->menu)
+ {
+ gtk_menu_shell_deactivate (GTK_MENU_SHELL (button->priv->menu));
+ }
+
g_signal_handlers_unblock_by_func (other,
G_CALLBACK (button_state_changed_cb),
button);