diff --git a/panel-plugin/weather-summary.c b/panel-plugin/weather-summary.c index d250edd..27a3bef 100644 --- a/panel-plugin/weather-summary.c +++ b/panel-plugin/weather-summary.c @@ -493,17 +493,34 @@ make_forecast (xfceweather_data *data, static GtkWidget * -create_forecast_tab (xfceweather_data *data) +create_forecast_tab (xfceweather_data *data, GtkWidget *window) { - GtkWidget *align; + GtkWidget *align, *scrolled, *table; guint i; + gint screen_height; + GdkScreen *screen; + table = make_forecast(data, data->unit); + + screen = gtk_window_get_screen(GTK_WINDOW(window)); + screen_height = gdk_screen_get_height(GDK_SCREEN(screen)); align = gtk_alignment_new(0.5, 0, 0.5, 0); - gtk_container_set_border_width (GTK_CONTAINER (align), 6); - if (data->weatherdata) - gtk_container_add(GTK_CONTAINER(align), - GTK_WIDGET(make_forecast (data, data->unit))); - return align; + if (screen_height >= 768) { + gtk_container_add(GTK_CONTAINER(align), GTK_WIDGET(table)); + gtk_container_set_border_width(GTK_CONTAINER (align), 6); + return align; + } else { + scrolled = gtk_scrolled_window_new (NULL, NULL); + gtk_container_add(GTK_CONTAINER(align), GTK_WIDGET(table)); + gtk_container_set_border_width(GTK_CONTAINER(scrolled), 6); + + gtk_scrolled_window_add_with_viewport(GTK_CONTAINER (scrolled), align); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + + gtk_widget_set_size_request(GTK_WIDGET(scrolled), 550, screen_height - 180); + return scrolled; + } } static void @@ -567,7 +584,7 @@ create_summary_window (xfceweather_data *data) notebook = gtk_notebook_new (); gtk_container_set_border_width (GTK_CONTAINER (notebook), BORDER); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), - create_forecast_tab (data), + create_forecast_tab (data, window), gtk_label_new (_("Forecast"))); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), create_summary_tab (data),