]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/appbase.cpp
Add class factories for filter streams. Also filters now follow the convention
[wxWidgets.git] / src / common / appbase.cpp
index fa5db01ac9682e88b5ceeb0d0229e46368e2b7ae..697aa2dd87964aa0ba8ab533bce10eae39d1727d 100644 (file)
@@ -25,6 +25,9 @@
 #endif
 
 #ifndef WX_PRECOMP
 #endif
 
 #ifndef WX_PRECOMP
+    #ifdef __WXMSW__
+        #include  "wx/msw/wrapwin.h"  // includes windows.h for MessageBox()
+    #endif
     #include "wx/list.h"
     #include "wx/app.h"
     #include "wx/intl.h"
     #include "wx/list.h"
     #include "wx/app.h"
     #include "wx/intl.h"
   #include  <signal.h>      // for SIGTRAP used by wxTrap()
 #endif  //Win/Unix
 
   #include  <signal.h>      // for SIGTRAP used by wxTrap()
 #endif  //Win/Unix
 
-#if defined(__WXMSW__)
-  #include  "wx/msw/wrapwin.h"  // includes windows.h for MessageBox()
-#endif
-
 #if wxUSE_FONTMAP
     #include "wx/fontmap.h"
 #endif // wxUSE_FONTMAP
 #if wxUSE_FONTMAP
     #include "wx/fontmap.h"
 #endif // wxUSE_FONTMAP
@@ -216,24 +215,6 @@ void wxAppConsole::Exit()
     exit(-1);
 }
 
     exit(-1);
 }
 
-wxLayoutDirection wxAppConsole::GetLayoutDirection() const
-{
-#if wxUSE_INTL
-    const wxLocale *const locale = wxGetLocale();
-    if ( locale )
-    {
-        const wxLanguageInfo *const
-            info = wxLocale::GetLanguageInfo(locale->GetLanguage());
-
-        if ( info )
-            return info->LayoutDirection;
-    }
-#endif // wxUSE_INTL
-
-    // we don't know
-    return wxLayout_Default;
-}
-
 // ----------------------------------------------------------------------------
 // traits stuff
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // traits stuff
 // ----------------------------------------------------------------------------
@@ -299,6 +280,15 @@ void wxAppConsole::ProcessPendingEvents()
 
     // iterate until the list becomes empty
     wxList::compatibility_iterator node = wxPendingEvents->GetFirst();
 
     // iterate until the list becomes empty
     wxList::compatibility_iterator node = wxPendingEvents->GetFirst();
+    
+    while (node && 
+           ((wxEvtHandler *)node->GetData())->IsEventHandlingInProgress() &&
+           ((wxEvtHandler *)node->GetData())->IsReentranceAllowed() == false)
+    {   
+        // skip over event
+        node = node->GetNext();
+    }
+    
     while (node)
     {
         wxEvtHandler *handler = (wxEvtHandler *)node->GetData();
     while (node)
     {
         wxEvtHandler *handler = (wxEvtHandler *)node->GetData();
@@ -313,6 +303,14 @@ void wxAppConsole::ProcessPendingEvents()
         wxENTER_CRIT_SECT( *wxPendingEventsLocker );
 
         node = wxPendingEvents->GetFirst();
         wxENTER_CRIT_SECT( *wxPendingEventsLocker );
 
         node = wxPendingEvents->GetFirst();
+        
+        while (node && 
+               ((wxEvtHandler *)node->GetData())->IsEventHandlingInProgress() &&
+               ((wxEvtHandler *)node->GetData())->IsReentranceAllowed() == false)
+        {   
+            // skip over event
+            node = node->GetNext();
+        }
     }
 
     wxLEAVE_CRIT_SECT( *wxPendingEventsLocker );
     }
 
     wxLEAVE_CRIT_SECT( *wxPendingEventsLocker );