diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2011-09-04 21:48:24 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2011-10-06 20:16:21 +0800 |
commit | 224f26b84d9c12b0dd1d337f51c14b6ebb901007 (patch) | |
tree | c88109d0fe00df4b14dcf1ce641cd5ed91013f0f /mail | |
parent | da3e201c064f877c884befc0a0b434619b056e09 (diff) | |
download | gsoc2013-evolution-224f26b84d9c12b0dd1d337f51c14b6ebb901007.tar.gz gsoc2013-evolution-224f26b84d9c12b0dd1d337f51c14b6ebb901007.tar.zst gsoc2013-evolution-224f26b84d9c12b0dd1d337f51c14b6ebb901007.zip |
GtkApplication has some new EShell-like features.
I pushed a few EShell features up to GtkApplication for GTK+ 3.2,
so we can now trim off the redundancies in EShell.
1) GtkApplication has a new "window-added" signal which replaces
EShell's own "window-created" signal.
2) GtkApplication has a new "window-removed" signal which replaces
EShell's own "window-destroyed" signal.
3) gtk_application_get_windows() now returns a list of windows sorted
by most recently focused, replacing e_shell_get_watched_windows().
4) GtkApplication now provides enough hooks to subclasses that we can
remove e_shell_watch_window() and call gtk_application_add_window()
directly.
Diffstat (limited to 'mail')
-rw-r--r-- | mail/e-mail-backend.c | 10 | ||||
-rw-r--r-- | mail/e-mail-browser.c | 5 | ||||
-rw-r--r-- | mail/mail-mt.c | 4 |
3 files changed, 14 insertions, 5 deletions
diff --git a/mail/e-mail-backend.c b/mail/e-mail-backend.c index 5768934b1a..7cc33c14c6 100644 --- a/mail/e-mail-backend.c +++ b/mail/e-mail-backend.c @@ -632,10 +632,13 @@ mail_backend_job_finished_cb (CamelSession *session, } else if (error != NULL) { EShell *shell; + GtkApplication *application; GList *list, *iter; shell = e_shell_backend_get_shell (shell_backend); - list = e_shell_get_watched_windows (shell); + + application = GTK_APPLICATION (shell); + list = gtk_application_get_windows (application); /* Submit the error to an appropriate EAlertSink. */ for (iter = list; iter != NULL; iter = g_list_next (iter)) { @@ -917,6 +920,7 @@ e_mail_backend_submit_alert (EMailBackend *backend, EShellContent *shell_content; EShellWindow *shell_window = NULL; EShellBackendClass *class; + GtkApplication *application; GList *list, *iter; va_list va; @@ -931,8 +935,10 @@ e_mail_backend_submit_alert (EMailBackend *backend, shell_backend = E_SHELL_BACKEND (backend); shell = e_shell_backend_get_shell (shell_backend); + application = GTK_APPLICATION (shell); + list = gtk_application_get_windows (application); + /* Find the most recently used EShellWindow. */ - list = e_shell_get_watched_windows (shell); for (iter = list; iter != NULL; iter = g_list_next (iter)) { if (E_IS_SHELL_WINDOW (iter->data)) { shell_window = E_SHELL_WINDOW (iter->data); diff --git a/mail/e-mail-browser.c b/mail/e-mail-browser.c index 95084c6d28..fe8b8984f3 100644 --- a/mail/e-mail-browser.c +++ b/mail/e-mail-browser.c @@ -580,9 +580,10 @@ mail_browser_constructed (GObject *object) priv->ui_manager = ui_manager; domain = GETTEXT_PACKAGE; - formatter = e_mail_reader_get_formatter (reader); - e_shell_watch_window (shell, GTK_WINDOW (object)); + gtk_application_add_window ( + GTK_APPLICATION (shell), GTK_WINDOW (object)); + formatter = e_mail_reader_get_formatter (reader); web_view = em_format_html_get_web_view (formatter); /* The message list is a widget, but it is not shown in the browser. diff --git a/mail/mail-mt.c b/mail/mail-mt.c index d904eed546..0d05a21a86 100644 --- a/mail/mail-mt.c +++ b/mail/mail-mt.c @@ -200,6 +200,7 @@ mail_msg_check_error (gpointer msg) EShellView *shell_view; EShellWindow *shell_window = NULL; EShellContent *shell_content; + GtkApplication *application; MailMsg *m = msg; gchar *what; GList *list, *iter; @@ -226,9 +227,10 @@ mail_msg_check_error (gpointer msg) return; shell = e_shell_get_default (); + application = GTK_APPLICATION (shell); + list = gtk_application_get_windows (application); /* Find the most recently used EShellWindow. */ - list = e_shell_get_watched_windows (shell); for (iter = list; iter != NULL; iter = g_list_next (iter)) { if (E_IS_SHELL_WINDOW (iter->data)) { shell_window = E_SHELL_WINDOW (iter->data); |