Index: GtkCreate.cpp =================================================================== --- GtkCreate.cpp (wersja 11016) +++ GtkCreate.cpp (kopia robocza) @@ -6,6 +6,14 @@ #define LLOG(x) // DLOG(x) +void Ctrl::SyncInitialSizeHints(TopWindow* topWindow) +{ + GdkWindowTypeHint hint = gtk_window_get_type_hint(gtk()); + if (hint == GDK_WINDOW_TYPE_HINT_NORMAL || + hint == GDK_WINDOW_TYPE_HINT_DIALOG) + topWindow->SyncSizeHints(); +} + void Ctrl::Create(Ctrl *owner, bool popup) { MemoryIgnoreLeaksBlock ___; @@ -45,12 +53,14 @@ gtk_widget_set_events(top->window, 0xffffffff); g_signal_connect(top->window, "event", G_CALLBACK(GtkEvent), (gpointer)(uintptr_t)top->id); - gtk_widget_realize(top->window); - + SyncInitialSizeHints(tw); + Rect r = GetRect(); gtk_window_move(gtk(), r.left, r.top); gtk_window_resize(gtk(), r.GetWidth(), r.GetHeight()); - + + gtk_widget_realize(top->window); + if(owner && owner->top) gtk_window_set_transient_for(gtk(), owner->gtk()); gtk_widget_set_app_paintable(top->window, TRUE); Index: GtkCtrl.h =================================================================== --- GtkCtrl.h (wersja 11016) +++ GtkCtrl.h (kopia robocza) @@ -183,4 +183,7 @@ static GdkFilterReturn RootKeyFilter(GdkXEvent *xevent, GdkEvent *event, gpointer data); +public: + void SyncInitialSizeHints(TopWindow* topWindow); + //$ }};