diff --git a/uppsrc/CtrlCore/GtkCreate.cpp b/uppsrc/CtrlCore/GtkCreate.cpp index fd3c742d2..14bf68b2b 100644 --- a/uppsrc/CtrlCore/GtkCreate.cpp +++ b/uppsrc/CtrlCore/GtkCreate.cpp @@ -44,13 +44,18 @@ void Ctrl::Create(Ctrl *owner, bool popup) 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); + GdkWindowTypeHint hint = gtk_window_get_type_hint(gtk()); + if(tw && findarg(hint, GDK_WINDOW_TYPE_HINT_NORMAL, GDK_WINDOW_TYPE_HINT_DIALOG, GDK_WINDOW_TYPE_HINT_UTILITY) >= 0) + tw->SyncSizeHints(); + 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); diff --git a/uppsrc/CtrlCore/GtkTop.cpp b/uppsrc/CtrlCore/GtkTop.cpp index 9f0ce811b..f087b8198 100644 --- a/uppsrc/CtrlCore/GtkTop.cpp +++ b/uppsrc/CtrlCore/GtkTop.cpp @@ -196,7 +196,7 @@ void TopWindow::Minimize(bool effect) TopWindow& TopWindow::FullScreen(bool b) { - SetMode(b ? FULLSCREEN : OVERLAPPED); + SetMode(b ? (int)FULLSCREEN : (int)OVERLAPPED); return *this; }