On tapping on title button in ModestShell, show menu.
authorJose Dapena Paz <jdapena@igalia.com>
Tue, 1 Dec 2009 12:20:34 +0000 (13:20 +0100)
committerJose Dapena Paz <jdapena@igalia.com>
Tue, 1 Dec 2009 12:22:23 +0000 (13:22 +0100)
src/gtk/modest-shell-window.c
src/gtk/modest-shell.c

index 8c69358..15adc1e 100644 (file)
@@ -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
index 916f5a2..1e432c0 100644 (file)
@@ -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 ());
+       }
+}