aboutsummaryrefslogtreecommitdiffstats
path: root/mail/e-mail-browser.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/e-mail-browser.c')
-rw-r--r--mail/e-mail-browser.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/mail/e-mail-browser.c b/mail/e-mail-browser.c
index 0e4239d4a7..8d685537bf 100644
--- a/mail/e-mail-browser.c
+++ b/mail/e-mail-browser.c
@@ -218,6 +218,23 @@ mail_browser_message_selected_cb (EMailBrowser *browser,
}
static void
+mail_browser_status_message_cb (EMailBrowser *browser,
+ const gchar *status_message)
+{
+ GtkStatusbar *statusbar;
+ guint context_id;
+
+ statusbar = GTK_STATUSBAR (browser->priv->statusbar);
+ context_id = gtk_statusbar_get_context_id (statusbar, G_STRFUNC);
+
+ /* Always pop first. This prevents messages from piling up. */
+ gtk_statusbar_pop (statusbar, context_id);
+
+ if (status_message != NULL && *status_message != '\0')
+ gtk_statusbar_push (statusbar, context_id, status_message);
+}
+
+static void
mail_browser_set_shell_module (EMailBrowser *browser,
EShellModule *shell_module)
{
@@ -320,6 +337,7 @@ mail_browser_dispose (GObject *object)
static void
mail_browser_constructed (GObject *object)
{
+ EMFormatHTMLDisplay *html_display;
EMailBrowserPrivate *priv;
EMailReader *reader;
EShellModule *shell_module;
@@ -329,6 +347,7 @@ mail_browser_constructed (GObject *object)
GtkUIManager *ui_manager;
GtkWidget *container;
GtkWidget *widget;
+ GtkHTML *html;
const gchar *domain;
guint merge_id;
@@ -338,10 +357,14 @@ mail_browser_constructed (GObject *object)
ui_manager = priv->ui_manager;
domain = GETTEXT_PACKAGE;
+ html_display = e_mail_reader_get_html_display (reader);
shell_module = e_mail_reader_get_shell_module (reader);
+
shell = e_shell_module_get_shell (shell_module);
e_shell_watch_window (shell, GTK_WINDOW (object));
+ html = EM_FORMAT_HTML (html_display)->html;
+
/* The message list is a widget, but it is not shown in the browser.
* Unfortunately, the widget is inseparable from its model, and the
* model is all we need. */
@@ -352,6 +375,10 @@ mail_browser_constructed (GObject *object)
priv->message_list, "message-selected",
G_CALLBACK (mail_browser_message_selected_cb), object);
+ g_signal_connect_swapped (
+ html, "status-message",
+ G_CALLBACK (mail_browser_status_message_cb), object);
+
e_mail_reader_init (reader);
action_group = priv->action_group;
@@ -409,7 +436,7 @@ mail_browser_constructed (GObject *object)
container = widget;
- widget = GTK_WIDGET (((EMFormatHTML *) priv->html_display)->html);
+ widget = GTK_WIDGET (EM_FORMAT_HTML (html_display)->html);
gtk_container_add (GTK_CONTAINER (container), widget);
gtk_widget_show (widget);
}