From: Vadim Zeitlin Date: Fri, 12 Mar 1999 14:25:45 +0000 (+0000) Subject: wxYield() calls OnInternalIdle() of all top level windows X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/5f12ae5cd76b3e9157bdf29e1df4f875cbd6d3e3 wxYield() calls OnInternalIdle() of all top level windows git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1905 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp index 9c88e7e7b9..afe49ce3c1 100644 --- a/src/gtk/app.cpp +++ b/src/gtk/app.cpp @@ -133,7 +133,20 @@ void wxExit() bool wxYield() { - while (gtk_events_pending() > 0) gtk_main_iteration(); + // it's necessary to call ProcessIdle() to update the frames sizes which + // might have been changed (it also will update other things set from + // OnUpdateUI() which is a nice (and desired) side effect) + for ( wxNode *node = wxTopLevelWindows.GetFirst(); + node; + node = node->GetNext() ) + { + wxWindow *win = ((wxWindow*)node->GetData()); + win->OnInternalIdle(); + } + + while (gtk_events_pending() > 0) + gtk_main_iteration(); + return TRUE; } diff --git a/src/gtk1/app.cpp b/src/gtk1/app.cpp index 9c88e7e7b9..afe49ce3c1 100644 --- a/src/gtk1/app.cpp +++ b/src/gtk1/app.cpp @@ -133,7 +133,20 @@ void wxExit() bool wxYield() { - while (gtk_events_pending() > 0) gtk_main_iteration(); + // it's necessary to call ProcessIdle() to update the frames sizes which + // might have been changed (it also will update other things set from + // OnUpdateUI() which is a nice (and desired) side effect) + for ( wxNode *node = wxTopLevelWindows.GetFirst(); + node; + node = node->GetNext() ) + { + wxWindow *win = ((wxWindow*)node->GetData()); + win->OnInternalIdle(); + } + + while (gtk_events_pending() > 0) + gtk_main_iteration(); + return TRUE; }