[gtk+] GtkMenuButton: Make programmatic toggling work again
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] GtkMenuButton: Make programmatic toggling work again
- Date: Mon, 15 Jun 2015 23:50:11 +0000 (UTC)
commit 002699402dd045e71bd108463a3f8cc7442ec538
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Jun 15 19:42:47 2015 -0400
GtkMenuButton: Make programmatic toggling work again
This was broken in 0796d7b6ff9393746d.
https://bugzilla.gnome.org/show_bug.cgi?id=751018
gtk/gtkmenubutton.c | 36 +++++++++++++++++++++++-------------
1 files changed, 23 insertions(+), 13 deletions(-)
---
diff --git a/gtk/gtkmenubutton.c b/gtk/gtkmenubutton.c
index 80f1c55..17c822b 100644
--- a/gtk/gtkmenubutton.c
+++ b/gtk/gtkmenubutton.c
@@ -426,26 +426,36 @@ gtk_menu_button_clicked (GtkButton *button)
{
GtkMenuButton *menu_button = GTK_MENU_BUTTON (button);
GtkMenuButtonPrivate *priv = menu_button->priv;
- gboolean active = TRUE;
+ gboolean active;
- if (priv->menu && !gtk_widget_get_visible (priv->menu))
+ if (priv->menu)
{
- GdkEvent *event;
+ active = !gtk_widget_get_visible (priv->menu);
+ if (active)
+ {
+ GdkEvent *event;
- event = gtk_get_current_event ();
+ event = gtk_get_current_event ();
- popup_menu (menu_button, event);
+ popup_menu (menu_button, event);
- if (!event ||
- event->type == GDK_KEY_PRESS ||
- event->type == GDK_KEY_RELEASE)
- gtk_menu_shell_select_first (GTK_MENU_SHELL (priv->menu), FALSE);
+ if (!event ||
+ event->type == GDK_KEY_PRESS ||
+ event->type == GDK_KEY_RELEASE)
+ gtk_menu_shell_select_first (GTK_MENU_SHELL (priv->menu), FALSE);
- if (event)
- gdk_event_free (event);
+ if (event)
+ gdk_event_free (event);
+ }
+ }
+ else if (priv->popover)
+ {
+ active = !gtk_widget_get_visible (priv->popover);
+ if (active)
+ gtk_widget_show (priv->popover);
+ else
+ gtk_widget_hide (priv->popover);
}
- else if (priv->popover && !gtk_widget_get_visible (priv->popover))
- gtk_widget_show (priv->popover);
else
active = FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]