aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--addressbook/ChangeLog10
-rw-r--r--addressbook/gui/component/addressbook-view.c11
-rw-r--r--addressbook/gui/widgets/eab-gui-util.c7
3 files changed, 22 insertions, 6 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index 6ddda5bc9a..e92238559e 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,3 +1,13 @@
+2005-08-01 Srinivasa Ragavan <sragavan@novell.com>
+
+ * gui/widgets/eab-gui-util.c (eab_load_error_dialog): Made the error dialog
+ for load-error nonmodal, since it block the UI along with popup menu.
+
+ * gui/component/addressbook-view.c (load_uri_for_selection)
+ (primary_source_selection_changed_callback) (addressbook_view_init):
+ Checks whether the book is already selected. If so it doesnt reselect
+ it on a r-click. Fixes the bug #309247
+
2005-08-03 Frank Arnold <farnold@cvs.gnome.org>
* addressbook.error.xml: Marked string for translation
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);
}