From c50254957fb5446576620a53198da05aef434fd2 Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz Date: Tue, 1 Dec 2009 13:20:34 +0100 Subject: [PATCH] On tapping on title button in ModestShell, show menu. --- src/gtk/modest-shell-window.c | 5 +++-- src/gtk/modest-shell.c | 25 +++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/gtk/modest-shell-window.c b/src/gtk/modest-shell-window.c index 8c69358..15adc1e 100644 --- a/src/gtk/modest-shell-window.c +++ b/src/gtk/modest-shell-window.c @@ -248,8 +248,8 @@ modest_shell_window_add_to_menu (ModestWindow *self, priv = MODEST_SHELL_WINDOW_GET_PRIVATE (self); menu_item = gtk_menu_item_new_with_label (label); - g_signal_connect_after (G_OBJECT (menu_item), "activate-item", - G_CALLBACK (callback), (gpointer) self); + g_signal_connect (G_OBJECT (menu_item), "activate", + G_CALLBACK (callback), (gpointer) self); if (accelerator != NULL) { guint accel_key; @@ -265,6 +265,7 @@ modest_shell_window_add_to_menu (ModestWindow *self, } else { gtk_widget_destroy (menu_item); } + gtk_widget_show (menu_item); } static void diff --git a/src/gtk/modest-shell.c b/src/gtk/modest-shell.c index 916f5a2..1e432c0 100644 --- a/src/gtk/modest-shell.c +++ b/src/gtk/modest-shell.c @@ -39,6 +39,7 @@ static void modest_shell_finalize (GObject *obj); static void update_title (ModestShell *self); static void on_back_button_clicked (GtkToolButton *button, ModestShell *self); +static void on_title_button_clicked (GtkToolButton *button, ModestShell *self); typedef struct _ModestShellPrivate ModestShellPrivate; @@ -133,6 +134,7 @@ modest_shell_instance_init (ModestShell *obj) gtk_toolbar_insert (GTK_TOOLBAR (priv->top_toolbar), priv->title_button, -1); gtk_container_child_set (GTK_CONTAINER (priv->top_toolbar), GTK_WIDGET (priv->title_button), "expand", TRUE, NULL); g_object_set (priv->title_button, "is-important", TRUE, NULL); + g_signal_connect (G_OBJECT (priv->title_button), "clicked", G_CALLBACK (on_title_button_clicked), obj); priv->notebook = gtk_notebook_new (); gtk_widget_show (priv->notebook); @@ -295,3 +297,26 @@ on_back_button_clicked (GtkToolButton *button, ModestShell *self) update_title (self); } } + +static void +on_title_button_clicked (GtkToolButton *button, ModestShell *self) +{ + ModestShellPrivate *priv; + gint n_pages; + gboolean delete_event_retval; + GtkWidget *child; + GtkWidget *menu; + + priv = MODEST_SHELL_GET_PRIVATE (self); + + n_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook)); + if (n_pages < 1) + return; + + child = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), -1); + menu = modest_shell_window_get_menu (MODEST_SHELL_WINDOW (child)); + + if (menu) { + gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 1, gtk_get_current_event_time ()); + } +} -- 1.7.9.5