X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e97d2576ae3307ed2f7ee8392090d2dab97df80c..e7300ec6d9ebbd1cfa2fcf12c0ce6e5aee85a152:/src/x11/toplevel.cpp diff --git a/src/x11/toplevel.cpp b/src/x11/toplevel.cpp index eb297ec92d..c9babe3825 100644 --- a/src/x11/toplevel.cpp +++ b/src/x11/toplevel.cpp @@ -264,7 +264,10 @@ void wxTopLevelWindowX11::OnInternalIdle() { wxWindow::OnInternalIdle(); - if (m_needResizeInIdle) + // Do this only after the last idle event so that + // all windows have been updated before a new + // round of size events is sent + if (m_needResizeInIdle && !wxTheApp->Pending()) { wxSizeEvent event( GetClientSize(), GetId() ); event.SetEventObject( this ); @@ -280,31 +283,15 @@ void wxTopLevelWindowX11::OnInternalIdle() bool wxTopLevelWindowX11::Show(bool show) { - // Nano-X has to force a size event, - // else there's no initial size. -#if wxUSE_NANOX if (show) -#else - if (show && m_needResizeInIdle) -#endif { wxSizeEvent event(GetSize(), GetId()); + event.SetEventObject(this); GetEventHandler()->ProcessEvent(event); m_needResizeInIdle = FALSE; } - if (show) - { - // This does the layout _before_ the - // window is shown, else the items are - // drawn first at the wrong positions, - // then at the correct positions. - if (GetAutoLayout()) - { - Layout(); - } - } bool ret = wxWindowX11::Show(show);