Index: src/mainwin-callbacks.c =================================================================== --- src/mainwin-callbacks.c (revision 25765) +++ src/mainwin-callbacks.c (working copy) @@ -1858,8 +1858,6 @@ xfmedia_settings_set_int("/xfmedia/general/width", evt->width); if(gtk_expander_get_expanded(GTK_EXPANDER(mwin->playlist_pane))) xfmedia_settings_set_int("/xfmedia/general/height_large", evt->height); - else - xfmedia_settings_set_int("/xfmedia/general/height_small", evt->height); return FALSE; } @@ -1888,6 +1886,8 @@ { XfmediaMainwin *mwin = user_data; gint h_l, h_s, w; + GtkRequisition requisition; + GdkGeometry geometry; if(gtk_expander_get_expanded(widget)) { gtk_window_get_size(GTK_WINDOW(mwin->window), &w, &h_s); @@ -1896,20 +1896,19 @@ h_l = h_s * 3; xfmedia_settings_set_int("/xfmedia/general/height_large", h_l); } - xfmedia_settings_set_int("/xfmedia/general/height_small", h_s); xfmedia_settings_set_int("/xfmedia/general/width", w); - gtk_widget_set_size_request(mwin->window, -1, -1); + geometry.max_width = G_MAXINT; + geometry.max_height = G_MAXINT; + gtk_window_set_geometry_hints(GTK_WINDOW(mwin->window), NULL, &geometry, GDK_HINT_MAX_SIZE); gtk_window_resize(GTK_WINDOW(mwin->window), w, h_l); xfmedia_settings_set_bool("/xfmedia/playlist/playlist_expanded", TRUE); g_idle_add(xfmedia_mainwin_playlist_load_info_idled, mwin); } else { gtk_window_get_size(GTK_WINDOW(mwin->window), &w, &h_l); - h_s = xfmedia_settings_get_int("/xfmedia/general/height_small"); - gtk_widget_set_size_request(mwin->playlist_pane, -1, -1); - gtk_widget_set_size_request(mwin->window, -1, h_s); - gtk_window_resize(GTK_WINDOW(mwin->window), w, h_s); - gtk_widget_set_size_request(mwin->window, -1, 1); + geometry.max_width = G_MAXINT; + geometry.max_height = -1; + gtk_window_set_geometry_hints(GTK_WINDOW(mwin->window), NULL, &geometry, GDK_HINT_MAX_SIZE); xfmedia_settings_set_int("/xfmedia/general/height_large", h_l); xfmedia_settings_set_int("/xfmedia/general/width", w); xfmedia_settings_set_bool("/xfmedia/playlist/playlist_expanded", FALSE); Index: src/mainwin.c =================================================================== --- src/mainwin.c (revision 25765) +++ src/mainwin.c (working copy) @@ -463,6 +463,7 @@ GtkTooltips *ttips; gchar *user_kb_file, *extensions, **ext_array; GString *ext_gstr; + GdkGeometry geometry; g_return_val_if_fail(xfx != NULL, NULL); @@ -519,13 +520,14 @@ gtk_window_resize(GTK_WINDOW(topwin), 475, 550); } else { w = xfmedia_settings_get_int("/xfmedia/general/width"); - h_s = xfmedia_settings_get_int("/xfmedia/general/height_small"); - if(h_s != -1 && w != -1) + geometry.max_width = G_MAXINT; + geometry.max_height = -1; + gtk_window_set_geometry_hints(GTK_WINDOW(mwin->window), NULL, &geometry, GDK_HINT_MAX_SIZE); + gtk_window_get_size(GTK_WINDOW(topwin), NULL, &h_s); + if(w != -1) gtk_window_resize(GTK_WINDOW(topwin), w, h_s); - else { - gtk_window_get_size(GTK_WINDOW(topwin), &w, &h_s); + else gtk_window_resize(GTK_WINDOW(topwin), 500, h_s); - } } gtk_widget_add_events(topwin, GDK_BUTTON_PRESS_MASK|GDK_STRUCTURE_MASK |GDK_SUBSTRUCTURE_MASK|GDK_KEY_RELEASE_MASK); @@ -949,17 +951,16 @@ mwin->shuffle_history = g_queue_new(); - h_s = xfmedia_settings_get_int("/xfmedia/general/height_small"); + w = xfmedia_settings_get_int("/xfmedia/general/width"); if(xfmedia_settings_get_bool("/xfmedia/playlist/playlist_expanded")) { h_l = xfmedia_settings_get_int("/xfmedia/general/height_large"); - if(h_l == -1) { + if(h_l == -1 || w == -1) { gtk_window_get_size(GTK_WINDOW(topwin), &w, &h_l); xfmedia_settings_set_int("/xfmedia/general/height_large", h_l); xfmedia_settings_set_int("/xfmedia/general/width", w); } - } else if(h_s == -1) { - gtk_window_get_size(GTK_WINDOW(topwin), &w, &h_s); - xfmedia_settings_set_int("/xfmedia/general/height_small", h_s); + } else if(w == -1) { + gtk_window_get_size(GTK_WINDOW(topwin), &w, NULL); xfmedia_settings_set_int("/xfmedia/general/width", w); } Index: src/settings.c =================================================================== --- src/settings.c (revision 25765) +++ src/settings.c (working copy) @@ -565,7 +565,6 @@ } xfmedia_settings_add_int("/xfmedia/general/height_large", -1); - xfmedia_settings_add_int("/xfmedia/general/height_small", -1); xfmedia_settings_add_int("/xfmedia/general/width", -1); xfmedia_settings_add_int("/xfmedia/general/pos_x", -1); xfmedia_settings_add_int("/xfmedia/general/pos_y", -1);