aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs/e-timezone-dialog.c
diff options
context:
space:
mode:
authorDamon Chaplin <damon@ximian.com>2001-07-17 09:34:49 +0800
committerDamon Chaplin <damon@src.gnome.org>2001-07-17 09:34:49 +0800
commit65f2e3d2a3de395977fbd39af0baac0b61504ee5 (patch)
treeca20ac10a7083865305fd7dcfa15fd3b050950ce /calendar/gui/dialogs/e-timezone-dialog.c
parent3b8e07c5b87acbda0f09155aa30bf9cc5e0ae8fc (diff)
downloadgsoc2013-evolution-65f2e3d2a3de395977fbd39af0baac0b61504ee5.tar
gsoc2013-evolution-65f2e3d2a3de395977fbd39af0baac0b61504ee5.tar.gz
gsoc2013-evolution-65f2e3d2a3de395977fbd39af0baac0b61504ee5.tar.bz2
gsoc2013-evolution-65f2e3d2a3de395977fbd39af0baac0b61504ee5.tar.lz
gsoc2013-evolution-65f2e3d2a3de395977fbd39af0baac0b61504ee5.tar.xz
gsoc2013-evolution-65f2e3d2a3de395977fbd39af0baac0b61504ee5.tar.zst
gsoc2013-evolution-65f2e3d2a3de395977fbd39af0baac0b61504ee5.zip
try to use builtin timezones before getting them from the server. When
2001-07-16 Damon Chaplin <damon@ximian.com> * gui/dialogs/task-page.c (task_page_fill_widgets): * gui/dialogs/event-page.c (event_page_fill_widgets): try to use builtin timezones before getting them from the server. When creating new events/tasks the timezones may not be on the server. * gui/dialogs/event-page.c (event_page_fill_widgets): for all-day events we subtract a day from the end date rather than add it. * gui/dialogs/e-timezone-dialog.c (on_map_leave): ignore the event if it isn't a GDK_CROSSING_NORMAL event. For some reason we are getting leave events when the button is pressed, which meant that selecting timezones in the map didn't work. * gui/dialogs/comp-editor-util.c (comp_editor_dates): * gui/print.c (print_date_label): only free icaltimetype if not NULL. svn path=/trunk/; revision=11144
Diffstat (limited to 'calendar/gui/dialogs/e-timezone-dialog.c')
-rw-r--r--calendar/gui/dialogs/e-timezone-dialog.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/calendar/gui/dialogs/e-timezone-dialog.c b/calendar/gui/dialogs/e-timezone-dialog.c
index 70061addd6..0f7ba65404 100644
--- a/calendar/gui/dialogs/e-timezone-dialog.c
+++ b/calendar/gui/dialogs/e-timezone-dialog.c
@@ -399,6 +399,12 @@ on_map_leave (GtkWidget *widget, GdkEventCrossing *event, gpointer data)
etd = E_TIMEZONE_DIALOG (data);
priv = etd->priv;
+ /* We only want to reset the hover point and the preview text if this
+ is a normal leave event. For some reason we are getting leave events
+ when the button is pressed in the map, which causes problems. */
+ if (event->mode != GDK_CROSSING_NORMAL)
+ return FALSE;
+
if (priv->point_hover && priv->point_hover != priv->point_selected)
e_map_point_set_color_rgba (priv->map, priv->point_hover,
E_TIMEZONE_DIALOG_MAP_POINT_NORMAL_RGBA);
@@ -447,6 +453,7 @@ on_map_button_pressed (GtkWidget *w, GdkEventButton *event, gpointer data)
ETimezoneDialog *etd;
ETimezoneDialogPrivate *priv;
double longitude, latitude;
+ char *location;
etd = E_TIMEZONE_DIALOG (data);
priv = etd->priv;
@@ -467,8 +474,9 @@ on_map_button_pressed (GtkWidget *w, GdkEventButton *event, gpointer data)
E_TIMEZONE_DIALOG_MAP_POINT_NORMAL_RGBA);
priv->point_selected = priv->point_hover;
+ location = get_zone_from_point (etd, priv->point_selected);
gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (priv->timezone_combo)->entry),
- get_zone_from_point (etd, priv->point_selected));
+ location);
g_free (priv->tzid);
priv->tzid = NULL;