use a common m_isInsideYield flag instead of static booleans in all ports; add a IsYielding() test which can help to fix unwanted re-entrancies

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Francesco Montorsi
2008-12-29 15:03:39 +00:00
parent 67badd5753
commit d181e877b0
14 changed files with 66 additions and 79 deletions

View File

@@ -454,6 +454,10 @@ public:
// with _extreme_ care or, better, don't use at all!
virtual bool Yield(bool onlyIfNeeded = false) = 0;
// returns true if the main thread is inside a Yield() call
bool IsYielding() const
{ return m_isInsideYield; }
// this virtual function is called in the GUI mode when the application
// becomes idle and normally just sends wxIdleEvent to all interested
// parties
@@ -576,6 +580,7 @@ protected:
// does any of our windows have focus?
bool m_isActive;
bool m_isInsideYield;
DECLARE_NO_COPY_CLASS(wxAppBase)
};