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 /modules/calendar/e-cal-shell-backend.c | |
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 'modules/calendar/e-cal-shell-backend.c')
-rw-r--r-- | modules/calendar/e-cal-shell-backend.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/modules/calendar/e-cal-shell-backend.c b/modules/calendar/e-cal-shell-backend.c index 96077cf19e..5693994277 100644 --- a/modules/calendar/e-cal-shell-backend.c +++ b/modules/calendar/e-cal-shell-backend.c @@ -699,8 +699,8 @@ exit: } static void -cal_shell_backend_window_created_cb (EShellBackend *shell_backend, - GtkWindow *window) +cal_shell_backend_window_added_cb (EShellBackend *shell_backend, + GtkWindow *window) { const gchar *backend_name; @@ -770,8 +770,8 @@ cal_shell_backend_constructed (GObject *object) shell_backend); g_signal_connect_swapped ( - shell, "window-created", - G_CALLBACK (cal_shell_backend_window_created_cb), + shell, "window-added", + G_CALLBACK (cal_shell_backend_window_added_cb), shell_backend); cal_shell_backend_init_importers (); @@ -943,18 +943,21 @@ e_cal_shell_backend_open_date_range (ECalShellBackend *cal_shell_backend, EShellBackend *shell_backend; EShellSidebar *shell_sidebar; GtkWidget *shell_window = NULL; + GtkApplication *application; ECalendar *navigator; - GList *watched_windows; + GList *list; g_return_if_fail (E_IS_CAL_SHELL_BACKEND (cal_shell_backend)); shell_backend = E_SHELL_BACKEND (cal_shell_backend); shell = e_shell_backend_get_shell (shell_backend); - watched_windows = e_shell_get_watched_windows (shell); + + application = GTK_APPLICATION (shell); + list = gtk_application_get_windows (application); /* Try to find an EShellWindow already in calendar view. */ - while (watched_windows != NULL) { - GtkWidget *window = GTK_WIDGET (watched_windows->data); + while (list != NULL) { + GtkWidget *window = GTK_WIDGET (list->data); if (E_IS_SHELL_WINDOW (window)) { const gchar *active_view; @@ -968,7 +971,7 @@ e_cal_shell_backend_open_date_range (ECalShellBackend *cal_shell_backend, } } - watched_windows = g_list_next (watched_windows); + list = g_list_next (list); } /* Otherwise create a new EShellWindow in calendar view. */ |