17125N/A@@ -146,6 +146,8 @@ struct _ClockData {
15733N/A+ GtkWidget *show_weather_toggle;
15733N/A+ GtkWidget *show_temperature_toggle;
17125N/A@@ -234,6 +236,7 @@ static void applet_change_orient (PanelA
15733N/A static void edit_hide (GtkWidget *unused, ClockData *cd);
15733N/A+static void update_show_weather_toggles (ClockData *cd);
15733N/A static gboolean edit_delete (GtkWidget *unused, GdkEvent *event, ClockData *cd);
15733N/A static void save_cities_store (ClockData *cd);
17139N/A@@ -1975,11 +1978,38 @@ update_panel_weather (ClockData *cd)
17139N/A gtk_widget_hide (cd->panel_temperature_label);
17139N/A if ((cd->show_weather || cd->show_temperature) &&
17125N/A- g_list_length (cd->locations) > 0)
17125N/A- gtk_widget_show (cd->weather_obox);
17125N/A- gtk_widget_hide (cd->weather_obox);
17139N/A+ g_list_length (cd->locations) > 0) {
15733N/A+ gboolean current_found = FALSE;
17139N/A+ /* need to process locations, if there is no current
15733N/A+ for (l = locations; l; l = l->next) {
15733N/A+ if (clock_location_is_current (loc)) {
15733N/A+ /* There is no current location so hide the obox */
15733N/A+ gtk_widget_hide(cd->weather_obox);
15733N/A+ gtk_widget_show(cd->weather_obox);
17139N/A+ gtk_widget_hide (cd->weather_obox);
15733N/A+ if (g_list_length (cd->locations) <= 0) {
15733N/A+ gtk_image_set_from_pixbuf (GTK_IMAGE (cd->panel_weather_icon),
15733N/A+ if (cd->panel_temperature_label)
15733N/A+ gtk_label_set_text (GTK_LABEL (cd->panel_temperature_label), "");
17139N/A gtk_widget_queue_resize (cd->applet);
17139N/A@@ -2074,19 +2104,7 @@ locations_changed (ClockData *cd)
15733N/A- gtk_widget_hide (cd->weather_obox);
15733N/A- gtk_image_set_from_pixbuf (GTK_IMAGE (cd->panel_weather_icon),
15733N/A- if (cd->panel_temperature_label)
15733N/A- gtk_label_set_text (GTK_LABEL (cd->panel_temperature_label),
15733N/A- gtk_widget_show (cd->weather_obox);
15733N/A for (l = cd->locations; l; l = l->next) {
17139N/A@@ -3121,12 +3139,25 @@ edit_clear (ClockData *cd)
15733N/A+update_show_weather_toggles(ClockData *cd)
15733N/A+ if (g_list_length (cd->locations) <= 0) {
15733N/A+ gtk_widget_set_sensitive (cd->show_weather_toggle, FALSE);
15733N/A+ gtk_widget_set_sensitive (cd->show_temperature_toggle, FALSE);
15733N/A+ gtk_widget_set_sensitive (cd->show_weather_toggle, TRUE);
15733N/A+ gtk_widget_set_sensitive (cd->show_temperature_toggle, TRUE);
15733N/A edit_hide (GtkWidget *unused, ClockData *cd)
17125N/A GtkWidget *edit_window = _clock_get_widget (cd, "edit-location-window");
15733N/A+ update_show_weather_toggles (cd);
17139N/A@@ -3197,6 +3228,8 @@ run_prefs_locations_remove (GtkButton *b
15733N/A GtkTreeSelection *sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (cd->prefs_locations));
15733N/A gtk_tree_selection_selected_foreach (sel, remove_tree_row, cd);
15733N/A+ update_show_weather_toggles (cd);
17139N/A@@ -3413,17 +3446,22 @@ fill_prefs_window (ClockData *cd)
15733N/A G_CALLBACK (set_show_seconds_cb), cd);
15733N/A /* Set the "Show weather" checkbox */
17125N/A- widget = _clock_get_widget (cd, "weather_check");
15733N/A- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), cd->show_weather);
15733N/A- g_signal_connect (widget, "toggled",
17139N/A+ cd->show_weather_toggle = _clock_get_widget (cd, "weather_check");
15733N/A+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cd->show_weather_toggle),
15733N/A+ g_signal_connect (cd->show_weather_toggle, "toggled",
17139N/A G_CALLBACK (set_show_weather_cb), cd);
15733N/A /* Set the "Show temperature" checkbox */
17125N/A- widget = _clock_get_widget (cd, "temperature_check");
15733N/A- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), cd->show_temperature);
15733N/A- g_signal_connect (widget, "toggled",
17139N/A+ cd->show_temperature_toggle = _clock_get_widget (cd, "temperature_check");
15733N/A+ gtk_toggle_button_set_active (
17139N/A+ GTK_TOGGLE_BUTTON (cd->show_temperature_toggle), cd->show_temperature);
15733N/A+ g_signal_connect (cd->show_temperature_toggle, "toggled",
17139N/A G_CALLBACK (set_show_temperature_cb), cd);
17139N/A+ update_show_weather_toggles (cd);
17125N/A widget = _clock_get_widget (cd, "cities_list");
17139N/A@@ -3490,8 +3528,10 @@ ensure_prefs_window_is_created (ClockDat
15733N/A+ update_show_weather_toggles (cd);
17125N/A cd->prefs_window = _clock_get_widget (cd, "prefs-window");