From 16efd93e3d26759add0f30d4e33eb21094b29aa8 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Wed, 7 Dec 2011 13:22:58 +0100 Subject: Bug #577322 - Rename of a system ESource doesn't persist --- calendar/gui/dialogs/calendar-setup.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'calendar/gui/dialogs/calendar-setup.c') diff --git a/calendar/gui/dialogs/calendar-setup.c b/calendar/gui/dialogs/calendar-setup.c index 0ffdb4cf1f..8aa82c29e5 100644 --- a/calendar/gui/dialogs/calendar-setup.c +++ b/calendar/gui/dialogs/calendar-setup.c @@ -224,7 +224,21 @@ name_changed (GtkEntry *entry, ECalConfigTargetSource *t) { ESource *source = t->source; - e_source_set_name (source, gtk_entry_get_text (GTK_ENTRY (entry))); + ESourceGroup *group; + gboolean is_birthdays = FALSE; + gboolean changed; + const gchar *name; + + name = gtk_entry_get_text (GTK_ENTRY (entry)); + + changed = g_strcmp0 (name, e_source_peek_name (source)) != 0; + e_source_set_name (source, name); + + group = e_source_peek_group (source); + is_birthdays = group && g_strcmp0 (e_source_group_peek_base_uri (group), "contacts://") == 0; + + if (changed && (g_strcmp0 ("system", e_source_peek_relative_uri (source)) == 0 || is_birthdays)) + e_source_set_property (source, "name-changed", "true"); } static GtkWidget * -- cgit v1.2.3