X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cae9e7b169b5507dc6dced7fc0e0c3b3d9575f3a..ae901b234c4a0aa7c1777b3bd181dd7f8517ad21:/src/common/event.cpp diff --git a/src/common/event.cpp b/src/common/event.cpp index 461b6fe5e7..7b58e77c3c 100644 --- a/src/common/event.cpp +++ b/src/common/event.cpp @@ -126,7 +126,7 @@ const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = // the memory leaks when using it, however this breaks re-initializing the // library (i.e. repeated calls to wxInitialize/wxUninitialize) because the // event tables won't be rebuilt the next time, so disable this by default -#if defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING +#if wxUSE_MEMORY_TRACING class wxEventTableEntryModule: public wxModule { @@ -140,7 +140,7 @@ public: IMPLEMENT_DYNAMIC_CLASS(wxEventTableEntryModule, wxModule) -#endif // __WXDEBUG__ && wxUSE_MEMORY_TRACING +#endif // wxUSE_MEMORY_TRACING // ---------------------------------------------------------------------------- // global variables @@ -177,6 +177,8 @@ wxDEFINE_EVENT( wxEVT_COMMAND_TOOL_ENTER, wxCommandEvent ); wxDEFINE_EVENT( wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEvent ); wxDEFINE_EVENT( wxEVT_COMMAND_SPINCTRLDOUBLE_UPDATED, wxCommandEvent ); wxDEFINE_EVENT( wxEVT_COMMAND_TOOL_DROPDOWN_CLICKED, wxCommandEvent ); +wxDEFINE_EVENT( wxEVT_COMMAND_COMBOBOX_DROPDOWN, wxCommandEvent); +wxDEFINE_EVENT( wxEVT_COMMAND_COMBOBOX_CLOSEUP, wxCommandEvent); // Mouse event types wxDEFINE_EVENT( wxEVT_LEFT_DOWN, wxMouseEvent ); @@ -876,7 +878,7 @@ void wxEventHashTable::Clear() m_size = 0; } -#if defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING +#if wxUSE_MEMORY_TRACING // Clear all tables void wxEventHashTable::ClearAll() @@ -889,7 +891,7 @@ void wxEventHashTable::ClearAll() } } -#endif // __WXDEBUG__ && wxUSE_MEMORY_TRACING +#endif // wxUSE_MEMORY_TRACING bool wxEventHashTable::HandleEvent(wxEvent &event, wxEvtHandler *self) { @@ -1305,7 +1307,7 @@ bool wxEvtHandler::DoTryApp(wxEvent& event) bool wxEvtHandler::TryBefore(wxEvent& event) { -#ifdef WXWIN_COMPATIBILITY_2_8 +#if WXWIN_COMPATIBILITY_2_8 // call the old virtual function to keep the code overriding it working return TryValidator(event); #else @@ -1316,7 +1318,7 @@ bool wxEvtHandler::TryBefore(wxEvent& event) bool wxEvtHandler::TryAfter(wxEvent& event) { -#ifdef WXWIN_COMPATIBILITY_2_8 +#if WXWIN_COMPATIBILITY_2_8 // as above, call the old virtual function for compatibility return TryParent(event); #else @@ -1394,9 +1396,15 @@ bool wxEvtHandler::SafelyProcessEvent(wxEvent& event) } catch ( ... ) { - wxEventLoopBase *loop = wxEventLoopBase::GetActive(); + // notice that we do it in 2 steps to avoid warnings about possibly + // uninitialized loop variable from some versions of g++ which are not + // smart enough to figure out that GetActive() doesn't throw and so + // that loop will always be initialized + wxEventLoopBase *loop = NULL; try { + loop = wxEventLoopBase::GetActive(); + if ( !wxTheApp || !wxTheApp->OnExceptionInMainLoop() ) { if ( loop )