aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--e-util/e-source-selector.c5
-rw-r--r--modules/calendar/e-cal-shell-sidebar.c4
-rw-r--r--modules/calendar/e-memo-shell-sidebar.c4
-rw-r--r--modules/calendar/e-task-shell-sidebar.c4
4 files changed, 17 insertions, 0 deletions
diff --git a/e-util/e-source-selector.c b/e-util/e-source-selector.c
index f9d001a4f0..07a375448e 100644
--- a/e-util/e-source-selector.c
+++ b/e-util/e-source-selector.c
@@ -1638,6 +1638,11 @@ e_source_selector_unselect_source (ESourceSelector *selector,
/* Make sure the ESource is in our tree model. */
source_index = selector->priv->source_index;
reference = g_hash_table_lookup (source_index, source);
+
+ /* can be NULL when the source was just removed */
+ if (!reference)
+ return;
+
g_return_if_fail (gtk_tree_row_reference_valid (reference));
class = E_SOURCE_SELECTOR_GET_CLASS (selector);
diff --git a/modules/calendar/e-cal-shell-sidebar.c b/modules/calendar/e-cal-shell-sidebar.c
index 632a3eb43c..053ee968b7 100644
--- a/modules/calendar/e-cal-shell-sidebar.c
+++ b/modules/calendar/e-cal-shell-sidebar.c
@@ -424,6 +424,10 @@ cal_shell_sidebar_restore_state_cb (EShellWindow *shell_window,
model = gtk_tree_view_get_model (GTK_TREE_VIEW (selector));
g_signal_connect_swapped (
+ registry, "source-removed",
+ G_CALLBACK (e_cal_shell_sidebar_remove_source), shell_sidebar);
+
+ g_signal_connect_swapped (
model, "row-changed",
G_CALLBACK (cal_shell_sidebar_row_changed_cb),
shell_sidebar);
diff --git a/modules/calendar/e-memo-shell-sidebar.c b/modules/calendar/e-memo-shell-sidebar.c
index 85a105c600..47abef724e 100644
--- a/modules/calendar/e-memo-shell-sidebar.c
+++ b/modules/calendar/e-memo-shell-sidebar.c
@@ -422,6 +422,10 @@ memo_shell_sidebar_restore_state_cb (EShellWindow *shell_window,
model = gtk_tree_view_get_model (GTK_TREE_VIEW (selector));
g_signal_connect_swapped (
+ registry, "source-removed",
+ G_CALLBACK (e_memo_shell_sidebar_remove_source), shell_sidebar);
+
+ g_signal_connect_swapped (
model, "row-changed",
G_CALLBACK (memo_shell_sidebar_row_changed_cb),
shell_sidebar);
diff --git a/modules/calendar/e-task-shell-sidebar.c b/modules/calendar/e-task-shell-sidebar.c
index 800943627c..288e92dc19 100644
--- a/modules/calendar/e-task-shell-sidebar.c
+++ b/modules/calendar/e-task-shell-sidebar.c
@@ -422,6 +422,10 @@ task_shell_sidebar_restore_state_cb (EShellWindow *shell_window,
model = gtk_tree_view_get_model (GTK_TREE_VIEW (selector));
g_signal_connect_swapped (
+ registry, "source-removed",
+ G_CALLBACK (e_task_shell_sidebar_remove_source), shell_sidebar);
+
+ g_signal_connect_swapped (
model, "row-changed",
G_CALLBACK (task_shell_sidebar_row_changed_cb),
shell_sidebar);