diff -up gnome-panel-2.21.91/applets/clock/clock-location-tile.c.sunrise gnome-panel-2.21.91/applets/clock/clock-location-tile.c --- gnome-panel-2.21.91/applets/clock/clock-location-tile.c.sunrise 2008-02-22 12:56:42.000000000 -0500 +++ gnome-panel-2.21.91/applets/clock/clock-location-tile.c 2008-02-22 13:08:01.000000000 -0500 @@ -534,13 +534,14 @@ clock_location_tile_refresh (ClockLocati } void -weather_info_setup_tooltip (WeatherInfo *info, GtkTooltip *tooltip) +weather_info_setup_tooltip (WeatherInfo *info, ClockLocation *location, GtkTooltip *tooltip) { GdkPixbuf *pixbuf = NULL; GtkIconTheme *theme = NULL; const gchar *conditions, *temp, *apparent, *wind; gchar *line1, *line2, *line3, *line4, *tip; const gchar *icon_name; + const gchar *sys_timezone; icon_name = weather_info_get_icon_name (info); theme = gtk_icon_theme_get_default (); @@ -571,9 +572,20 @@ weather_info_setup_tooltip (WeatherInfo else line3 = g_strdup (""); + /* FIXME: we need libgweather to give us the time, + * not just a formatted string + */ + sys_timezone = getenv ("TZ"); + setenv ("TZ", clock_location_get_timezone (location), 1); + tzset (); line4 = g_strdup_printf (_("Sunrise: %s / Sunset: %s"), weather_info_get_sunrise (info), weather_info_get_sunset (info)); + if (sys_timezone) + setenv ("TZ", sys_timezone, 1); + else + unsetenv ("TZ"); + tzset (); tip = g_strdup_printf ("%s\n%s\n%s%s", line1, line2, line3, line4); gtk_tooltip_set_markup (tooltip, tip); @@ -601,7 +613,7 @@ weather_tooltip (GtkWidget *widget, if (!info || !weather_info_is_valid (info)) return FALSE; - weather_info_setup_tooltip (info, tooltip); + weather_info_setup_tooltip (info, priv->location, tooltip); return TRUE; } diff -up gnome-panel-2.21.91/applets/clock/clock.c.sunrise gnome-panel-2.21.91/applets/clock/clock.c --- gnome-panel-2.21.91/applets/clock/clock.c.sunrise 2008-02-22 12:56:42.000000000 -0500 +++ gnome-panel-2.21.91/applets/clock/clock.c 2008-02-22 12:56:42.000000000 -0500 @@ -1341,12 +1341,13 @@ weather_tooltip (GtkWidget *widget, locations = cd->locations; for (l = locations; l; l = l->next) { - if (clock_location_is_current (l->data)) { - info = clock_location_get_weather_info (l->data); + ClockLocation *location = l->data; + if (clock_location_is_current (location)) { + info = clock_location_get_weather_info (location); if (!info || !weather_info_is_valid (info)) continue; - weather_info_setup_tooltip (info, tooltip); + weather_info_setup_tooltip (info, location, tooltip); return TRUE; } diff -up gnome-panel-2.21.91/applets/clock/clock-location-tile.h.sunrise gnome-panel-2.21.91/applets/clock/clock-location-tile.h --- gnome-panel-2.21.91/applets/clock/clock-location-tile.h.sunrise 2008-02-22 12:56:42.000000000 -0500 +++ gnome-panel-2.21.91/applets/clock/clock-location-tile.h 2008-02-22 12:56:42.000000000 -0500 @@ -37,7 +37,7 @@ ClockLocationTile *clock_location_tile_n ClockLocation *clock_location_tile_get_location (ClockLocationTile *this); -void weather_info_setup_tooltip (WeatherInfo *info, GtkTooltip *tip); +void weather_info_setup_tooltip (WeatherInfo *info, ClockLocation *location, GtkTooltip *tip); void clock_location_tile_refresh (ClockLocationTile *this, gboolean force_refresh);