X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e4b7b2b0529f35b521ed1e32f14ddc8bcfa83cc2..f00f657d37e530c55d5e98fac2477b477a6f1d36:/src/gtk/toplevel.cpp?ds=sidebyside diff --git a/src/gtk/toplevel.cpp b/src/gtk/toplevel.cpp index 3e432d3f01..2d5d03f16d 100644 --- a/src/gtk/toplevel.cpp +++ b/src/gtk/toplevel.cpp @@ -379,8 +379,11 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent, m_widget = gtk_window_new( win_type ); - if ((m_parent) && (HasFlag(wxFRAME_FLOAT_ON_PARENT)) && (GTK_IS_WINDOW(m_parent->m_widget))) + if (m_parent && (GTK_IS_WINDOW(m_parent->m_widget)) && + (HasFlag(wxFRAME_FLOAT_ON_PARENT) || (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG))) + { gtk_window_set_transient_for( GTK_WINDOW(m_widget), GTK_WINDOW(m_parent->m_widget) ); + } if (!name.IsEmpty()) gtk_window_set_wmclass( GTK_WINDOW(m_widget), name.mb_str(), name.mb_str() ); @@ -591,7 +594,7 @@ void wxTopLevelWindowGTK::DoSetSize( int x, int y, int width, int height, int si { wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") ); - /* this shouldn't happen: wxFrameGTK, wxMDIParentFrame and wxMDIChildFrame have m_wxwindow */ + /* this shouldn't happen: wxFrame, wxMDIParentFrame and wxMDIChildFrame have m_wxwindow */ wxASSERT_MSG( (m_wxwindow != NULL), wxT("invalid frame") ); /* avoid recursions */ @@ -698,9 +701,9 @@ void wxTopLevelWindowGTK::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), m_width = width; m_height = height; - /* wxMDIChildFrame derives from wxFrameGTK but it _is_ a wxWindow as it uses + /* wxMDIChildFrame derives from wxFrame but it _is_ a wxWindow as it uses wxWindow::Create to create it's GTK equivalent. m_mainWidget is only - set in wxFrameGTK::Create so it is used to check what kind of frame we + set in wxFrame::Create so it is used to check what kind of frame we have here. if m_mainWidget is NULL it is a wxMDIChildFrame and so we skip the part which handles m_frameMenuBar, m_frameToolBar and (most importantly) m_mainWidget */