aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--addressbook/gui/widgets/e-addressbook-view.c6
-rw-r--r--modules/addressbook/e-book-shell-view-private.c5
-rw-r--r--modules/calendar/e-memo-shell-content.c5
-rw-r--r--modules/calendar/e-task-shell-content.c5
4 files changed, 18 insertions, 3 deletions
diff --git a/addressbook/gui/widgets/e-addressbook-view.c b/addressbook/gui/widgets/e-addressbook-view.c
index db9917f37f..ca767ecf92 100644
--- a/addressbook/gui/widgets/e-addressbook-view.c
+++ b/addressbook/gui/widgets/e-addressbook-view.c
@@ -577,9 +577,13 @@ addressbook_view_constructed (GObject *object)
g_signal_connect_swapped (
view_instance, "display-view",
G_CALLBACK (addressbook_view_display_view_cb), view);
- gal_view_instance_load (view_instance);
view->priv->view_instance = view_instance;
+ /* Do not call gal_view_instance_load() here. EBookShellContent
+ * must first obtain a reference to this EAddressbookView so that
+ * e_book_shell_content_get_current_view() returns the correct
+ * view in GalViewInstance::loaded signal handlers. */
+
g_free (uri);
}
diff --git a/modules/addressbook/e-book-shell-view-private.c b/modules/addressbook/e-book-shell-view-private.c
index 4482383331..746a11c4e7 100644
--- a/modules/addressbook/e-book-shell-view-private.c
+++ b/modules/addressbook/e-book-shell-view-private.c
@@ -303,6 +303,11 @@ book_shell_view_activate_selected_source (EBookShellView *book_shell_view,
E_ADDRESSBOOK_VIEW (widget));
view_instance = e_addressbook_view_get_view_instance (view);
+
+ /* This must come after e_book_shell_content_set_current_view()
+ * because book_shell_view_notify_view_id_cb() relies on it. */
+ gal_view_instance_load (view_instance);
+
view_id = gal_view_instance_get_current_view_id (view_instance);
e_shell_view_set_view_id (shell_view, view_id);
g_free (view_id);
diff --git a/modules/calendar/e-memo-shell-content.c b/modules/calendar/e-memo-shell-content.c
index 663920044c..cc17964f48 100644
--- a/modules/calendar/e-memo-shell-content.c
+++ b/modules/calendar/e-memo-shell-content.c
@@ -546,9 +546,12 @@ memo_shell_content_constructed (GObject *object)
view_instance, "display-view",
G_CALLBACK (memo_shell_content_display_view_cb),
object);
- gal_view_instance_load (view_instance);
priv->view_instance = view_instance;
+ /* Do this last so e_memo_shell_content_get_view_instance() returns
+ * the correct instance in GalViewInstance::loaded signal handlers. */
+ gal_view_instance_load (view_instance);
+
/* Restore pane positions from the last session once
* the shell view is fully initialized and visible. */
g_signal_connect (
diff --git a/modules/calendar/e-task-shell-content.c b/modules/calendar/e-task-shell-content.c
index bb2017fa8a..6b3f23eeb0 100644
--- a/modules/calendar/e-task-shell-content.c
+++ b/modules/calendar/e-task-shell-content.c
@@ -541,9 +541,12 @@ task_shell_content_constructed (GObject *object)
view_instance, "display-view",
G_CALLBACK (task_shell_content_display_view_cb),
object);
- gal_view_instance_load (view_instance);
priv->view_instance = view_instance;
+ /* Do this last so e_task_shell_content_get_view_instance() returns
+ * the correct instance in GalViewInstance::loaded signal handlers. */
+ gal_view_instance_load (view_instance);
+
/* Restore pane positions from the last session once
* the shell view is fully initialized and visible. */
g_signal_connect (