aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/gui')
-rw-r--r--addressbook/gui/component/addressbook-view.c11
-rw-r--r--addressbook/gui/widgets/eab-gui-util.c7
2 files changed, 12 insertions, 6 deletions
diff --git a/addressbook/gui/component/addressbook-view.c b/addressbook/gui/component/addressbook-view.c
index 9923c31a62..b049755842 100644
--- a/addressbook/gui/component/addressbook-view.c
+++ b/addressbook/gui/component/addressbook-view.c
@@ -551,11 +551,14 @@ source_list_changed_cb (ESourceList *source_list, AddressbookView *view)
static void
load_uri_for_selection (ESourceSelector *selector,
- AddressbookView *view)
+ AddressbookView *view,
+ gboolean force)
{
ESource *selected_source = e_source_selector_peek_primary_selection (E_SOURCE_SELECTOR (selector));
+ ESource *primary = get_primary_source (view);
- if (selected_source != NULL)
+ if (selected_source != NULL &&
+ ((primary && (!g_str_equal (e_source_peek_uid (primary),e_source_peek_uid (selected_source) )))||force))
activate_source (view, selected_source);
}
@@ -749,7 +752,7 @@ static void
primary_source_selection_changed_callback (ESourceSelector *selector,
AddressbookView *view)
{
- load_uri_for_selection (selector, view);
+ load_uri_for_selection (selector, view, FALSE);
save_primary_selection (view);
}
@@ -1160,7 +1163,7 @@ addressbook_view_init (AddressbookView *view)
G_OBJECT (view), 0);
load_primary_selection (view);
- load_uri_for_selection (E_SOURCE_SELECTOR (priv->selector), view);
+ load_uri_for_selection (E_SOURCE_SELECTOR (priv->selector), view, TRUE);
}
static void
diff --git a/addressbook/gui/widgets/eab-gui-util.c b/addressbook/gui/widgets/eab-gui-util.c
index 6de89ccafd..646887a8cd 100644
--- a/addressbook/gui/widgets/eab-gui-util.c
+++ b/addressbook/gui/widgets/eab-gui-util.c
@@ -83,6 +83,7 @@ void
eab_load_error_dialog (GtkWidget *parent, ESource *source, EBookStatus status)
{
char *label_string, *label = NULL, *uri;
+ GtkWidget *dialog;
g_return_if_fail (source != NULL);
@@ -123,8 +124,10 @@ eab_load_error_dialog (GtkWidget *parent, ESource *source, EBookStatus status)
"is unreachable.");
}
- e_error_run ((GtkWindow *) parent, "addressbook:load-error", label_string, NULL);
-
+ dialog = e_error_new ((GtkWindow *) parent, "addressbook:load-error", label_string, NULL);
+ g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL);
+
+ gtk_widget_show (dialog);
g_free (label);
g_free (uri);
}