From: Jose Dapena Paz Date: Tue, 1 Dec 2009 12:20:24 +0000 (+0100) Subject: On tapping back button in shell, close last window. X-Git-Tag: jdapena-ppa-3.90.4-modest0~176 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=d14deec66b55d57c8e66c41f14a7f4e5be4e6039 On tapping back button in shell, close last window. --- diff --git a/src/gtk/modest-shell.c b/src/gtk/modest-shell.c index 951a70e..916f5a2 100644 --- a/src/gtk/modest-shell.c +++ b/src/gtk/modest-shell.c @@ -38,6 +38,8 @@ static void modest_shell_finalize (GObject *obj); static void update_title (ModestShell *self); +static void on_back_button_clicked (GtkToolButton *button, ModestShell *self); + typedef struct _ModestShellPrivate ModestShellPrivate; struct _ModestShellPrivate { @@ -112,6 +114,7 @@ modest_shell_instance_init (ModestShell *obj) priv->back_button = gtk_tool_button_new_from_stock (GTK_STOCK_GO_BACK); gtk_toolbar_insert (GTK_TOOLBAR (priv->top_toolbar), priv->back_button, -1); gtk_widget_show (GTK_WIDGET (priv->back_button)); + g_signal_connect (G_OBJECT (priv->back_button), "clicked", G_CALLBACK (on_back_button_clicked), obj); title_vbox = gtk_vbox_new (FALSE, 0); priv->title_label = gtk_label_new (NULL); @@ -270,3 +273,25 @@ update_title (ModestShell *self) subtitle_buffer->str); g_string_free (subtitle_buffer, TRUE); } + +static void +on_back_button_clicked (GtkToolButton *button, ModestShell *self) +{ + ModestShellPrivate *priv; + gint n_pages; + gboolean delete_event_retval; + GtkWidget *child; + + 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); + g_signal_emit_by_name (G_OBJECT (child), "delete-event", NULL, &delete_event_retval); + + if (!delete_event_retval) { + update_title (self); + } +}