- wxLogDebug(wxT("setting min size to %d;%d"), sz.x, sz.y);
-
- // set size hints
- GdkGeometry geom;
-
- geom.min_width = sz.x;
- geom.min_height = sz.y;
-
- gtk_window_set_geometry_hints( GTK_WINDOW(top->m_widget),
- (GtkWidget*) NULL,
- &geom,
- GDK_HINT_MIN_SIZE );
- //gtk_window_set_default_size( GTK_WINDOW(top->m_widget), sz.x, sz.y );
-
-
- /* I revert back to wxGTK's original behaviour. m_mainWidget holds the
- * menubar, the toolbar and the client area, which is represented by
- * m_wxwindow.
- * this hurts in the eye, but I don't want to call SetSize()
- * because I don't want to call any non-native functions here. */
-
- top->m_width = sz.x;
- top->m_height = sz.y;
-
- int client_x = top->m_miniEdge;
- int client_y = top->m_miniEdge + top->m_miniTitle;
- int client_w = top->m_width - 2*top->m_miniEdge;
- int client_h = top->m_height - 2*top->m_miniEdge - top->m_miniTitle;
- if (client_w < 0)
- client_w = 0;
- if (client_h < 0)
- client_h = 0;
-
- // Let the parent perform the resize
- gtk_pizza_set_size( GTK_PIZZA(top->m_mainWidget),
- top->m_wxwindow,
- client_x, client_y, client_w, client_h );
-
- gtk_widget_set_size_request( top->m_wxwindow, sz.x, sz.y );
-
+ // 3) MAGIC HACK: if you ever used GtkExpander in a GTK+ program
+ // you know that this magic call is required to make it possible
+ // to shrink the top level window in the expanded->collapsed
+ // transition. This may be sometimes undesired but *is*
+ // necessary and if you look carefully, all GTK+ programs using
+ // GtkExpander perform this trick (e.g. the standard "open file"
+ // dialog of GTK+>=2.4 is not resizable when the expander is
+ // collapsed!)
+ gtk_window_set_resizable (GTK_WINDOW (top->m_widget), p->IsExpanded());
+
+ // 4) set size hints
+ top->SetMinClientSize(sz);
+
+ // 5) set size
+ top->SetClientSize(sz);