From 48972c2dbea38548671277f5efd60dcb2e4f3176 Mon Sep 17 00:00:00 2001 From: Srinivasa Ragavan Date: Fri, 14 Jul 2006 06:36:34 +0000 Subject: Fix for bug #330633 svn path=/trunk/; revision=32312 --- calendar/gui/dialogs/event-page.c | 9 ++++++++- calendar/gui/e-timezone-entry.c | 8 ++++---- 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'calendar/gui') diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c index 19ff6a60a3..7834c2b37e 100644 --- a/calendar/gui/dialogs/event-page.c +++ b/calendar/gui/dialogs/event-page.c @@ -513,6 +513,9 @@ update_time (EventPage *epage, ECalComponentDateTime *start_date, ECalComponentD start_zone); event_page_set_show_timezone (epage, calendar_config_get_show_timezone() & !all_day_event); + /*unblock the endtimezone widget*/ + g_signal_handlers_unblock_matched (priv->end_timezone, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, epage); + gtk_signal_handler_unblock_by_data (GTK_OBJECT (priv->start_timezone), epage); @@ -2521,7 +2524,8 @@ start_timezone_changed_cb (GtkWidget *widget, gpointer data) if (priv->sync_timezones) { zone = e_timezone_entry_get_timezone (E_TIMEZONE_ENTRY (priv->start_timezone)); priv->updating = TRUE; - e_timezone_entry_set_timezone (E_TIMEZONE_ENTRY (priv->end_timezone), zone); + /*the earlier method caused an infinite recursion*/ + priv->end_timezone=priv->start_timezone; gtk_widget_show_all (priv->end_timezone); priv->updating = FALSE; } @@ -2988,6 +2992,9 @@ init_widgets (EventPage *epage) /* emit signal when the group is changed */ g_signal_connect((priv->source_selector),"changed",G_CALLBACK(field_changed_cb),epage); + /*call the field_changed_cb when the timezone is changed*/ + g_signal_connect((priv->start_timezone), "changed",G_CALLBACK (field_changed_cb), epage); + /* Set the default timezone, so the timezone entry may be hidden. */ zone = calendar_config_get_icaltimezone (); e_timezone_entry_set_default_timezone (E_TIMEZONE_ENTRY (priv->start_timezone), zone); diff --git a/calendar/gui/e-timezone-entry.c b/calendar/gui/e-timezone-entry.c index e708a03618..04ee657f92 100644 --- a/calendar/gui/e-timezone-entry.c +++ b/calendar/gui/e-timezone-entry.c @@ -329,10 +329,10 @@ e_timezone_entry_set_entry (ETimezoneEntry *tentry) gtk_entry_set_text (GTK_ENTRY (priv->entry), name_buffer); - if (!priv->default_zone || (priv->zone != priv->default_zone)) - gtk_widget_show (priv->entry); - else - gtk_widget_hide (priv->entry); + /* do we need to hide the timezone entry at all? i know this overrules the previous case of hiding the timezone + * entry field when we select the default timezone + */ + gtk_widget_show (priv->entry); g_free (name_buffer); } -- cgit v1.2.3