X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a509f83054cbc350d39ce06f326211b7ca512a98..5767e836997b965b9d936f1d65244bb886c39025:/src/common/event.cpp diff --git a/src/common/event.cpp b/src/common/event.cpp index 2ba914fde2..2962ea721b 100644 --- a/src/common/event.cpp +++ b/src/common/event.cpp @@ -120,7 +120,7 @@ wxEventHashTable wxEvtHandler::sm_eventHashTable(wxEvtHandler::sm_eventTable); const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = { DECLARE_EVENT_TABLE_ENTRY(wxEVT_NULL, 0, 0, (wxObjectEventFunction)NULL, NULL) }; - + #ifdef __WXDEBUG__ // Clear up event hash table contents or we can get problems // when C++ is cleaning up the static object @@ -137,7 +137,7 @@ public: }; IMPLEMENT_DYNAMIC_CLASS(wxEventTableEntryModule, wxModule) #endif - + // ---------------------------------------------------------------------------- // global variables // ---------------------------------------------------------------------------- @@ -338,7 +338,7 @@ int wxNewEventType() // ---------------------------------------------------------------------------- /* - * General wxWindows events, covering + * General wxWidgets events, covering * all interesting things that might happen (button clicking, resizing, * setting text in widgets, etc.). * @@ -417,23 +417,23 @@ bool wxUpdateUIEvent::CanUpdate(wxWindowBase *win) if (sm_updateInterval == -1) return false; - else if (sm_updateInterval == 0) + + if (sm_updateInterval == 0) return true; - else - { + #if wxUSE_STOPWATCH && wxUSE_LONGLONG - wxLongLong now = wxGetLocalTimeMillis(); - if (now > (sm_lastUpdate + sm_updateInterval)) - { - return true; - } -#else - // If we don't have wxStopWatch or wxLongLong, we - // should err on the safe side and update now anyway. + wxLongLong now = wxGetLocalTimeMillis(); + if (now > (sm_lastUpdate + sm_updateInterval)) + { return true; -#endif } + return false; +#else + // If we don't have wxStopWatch or wxLongLong, we + // should err on the safe side and update now anyway. + return true; +#endif } // Reset the update time to provide a delay until the next @@ -759,7 +759,7 @@ wxEventHashTable::wxEventHashTable(const wxEventTable &table) m_rebuildHash(true) { AllocEventTypeTable(EVENT_TYPE_TABLE_INIT_SIZE); - + m_next = sm_first; if (m_next) m_next->m_previous = this; @@ -774,7 +774,7 @@ wxEventHashTable::~wxEventHashTable() m_previous->m_next = m_next; if (sm_first == this) sm_first = m_next; - + Clear(); } @@ -817,9 +817,9 @@ bool wxEventHashTable::HandleEvent(wxEvent &event, wxEvtHandler *self) InitHashTable(); m_rebuildHash = false; } - + if (!m_eventTypeTable) - return FALSE; + return false; // Find all entries for the given event type. wxEventType eventType = event.GetEventType(); @@ -881,7 +881,7 @@ void wxEventHashTable::AddEntry(const wxEventTableEntry &entry) // This might happen 'accidentally' as the app is exiting if (!m_eventTypeTable) return; - + EventTypeTablePointer *peTTnode = &m_eventTypeTable[entry.m_eventType % m_size]; EventTypeTablePointer eTTnode = *peTTnode; @@ -1095,6 +1095,11 @@ void wxEvtHandler::AddPendingEvent(wxEvent& event) void wxEvtHandler::ProcessPendingEvents() { + // this method is only called by wxApp if this handler does have pending + // events + wxCHECK_RET( m_pendingEvents, + wxT("Please call wxApp::ProcessPendingEvents() instead") ); + #if defined(__VISAGECPP__) wxENTER_CRIT_SECT( m_eventsLocker); #else @@ -1147,9 +1152,9 @@ wxEvtHandler::ProcessEventIfMatches(const wxEventTableEntryBase& entry, // the event table (meaning "any") or the event id matches the id // specified in the event table either exactly or by falling into // range between first and last - if ((tableId1 == -1) || - (tableId2 == -1 && tableId1 == event.GetId()) || - (tableId2 != -1 && + if ((tableId1 == wxID_ANY) || + (tableId2 == wxID_ANY && tableId1 == event.GetId()) || + (tableId2 != wxID_ANY && (event.GetId() >= tableId1 && event.GetId() <= tableId2))) { event.Skip(false); @@ -1299,7 +1304,7 @@ bool wxEvtHandler::Disconnect( int id, int lastId, wxEventType eventType, #endif // WXWIN_COMPATIBILITY_EVENT_TYPES/!WXWIN_COMPATIBILITY_EVENT_TYPES if ((entry->m_id == id) && - ((entry->m_lastId == lastId) || (lastId == -1)) && + ((entry->m_lastId == lastId) || (lastId == wxID_ANY)) && ((entry->m_eventType == eventType) || (eventType == wxEVT_NULL)) && ((entry->m_fn == func) || (func == (wxObjectEventFunction)NULL)) && ((entry->m_eventSink == eventSink) || (eventSink == (wxEvtHandler*)NULL)) && @@ -1330,7 +1335,7 @@ bool wxEvtHandler::SearchDynamicEventTable( wxEvent& event ) wxDynamicEventTableEntry *entry = (wxDynamicEventTableEntry*)node->GetData(); #endif // WXWIN_COMPATIBILITY_EVENT_TYPES/!WXWIN_COMPATIBILITY_EVENT_TYPES - if ((event.m_eventType == entry->m_eventType) && entry->m_fn) + if ((event.m_eventType == entry->m_eventType) && (entry->m_fn != 0)) { wxEvtHandler *handler = #if !WXWIN_COMPATIBILITY_EVENT_TYPES