// Modified by:
// Created: 01/02/97
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
+// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// System events
DEFINE_EVENT_TYPE(wxEVT_SIZE)
+DEFINE_EVENT_TYPE(wxEVT_SIZING)
DEFINE_EVENT_TYPE(wxEVT_MOVE)
+DEFINE_EVENT_TYPE(wxEVT_MOVING)
DEFINE_EVENT_TYPE(wxEVT_CLOSE_WINDOW)
DEFINE_EVENT_TYPE(wxEVT_END_SESSION)
DEFINE_EVENT_TYPE(wxEVT_QUERY_END_SESSION)
void wxMouseEvent::Assign(const wxMouseEvent& event)
{
m_eventType = event.m_eventType;
-
+
m_x = event.m_x;
m_y = event.m_y;
#endif
}
-wxKeyEvent::wxKeyEvent(const wxKeyEvent& evt)
+wxKeyEvent::wxKeyEvent(const wxKeyEvent& evt)
: wxEvent(evt)
{
m_x = evt.m_x;
m_scanCode = evt.m_scanCode;
m_rawCode = evt.m_rawCode;
m_rawFlags = evt.m_rawFlags;
-
+
#if wxUSE_UNICODE
m_uniChar = evt.m_uniChar;
#endif
# if !defined(__VISAGECPP__)
delete m_eventsLocker;
# endif
+
+ // Remove us from wxPendingEvents if necessary.
+ if(wxPendingEventsLocker)
+ wxENTER_CRIT_SECT(*wxPendingEventsLocker);
+ if ( wxPendingEvents ) {
+ wxPendingEvents->DeleteObject(this);
+ }
+ if(wxPendingEventsLocker)
+ wxLEAVE_CRIT_SECT(*wxPendingEventsLocker);
#endif
// we only delete object data, not untyped
if (!m_dynamicEvents)
m_dynamicEvents = new wxList;
- m_dynamicEvents->Append( (wxObject*) entry );
+ // Insert at the front of the list so most recent additions are found first
+ m_dynamicEvents->Insert( (wxObject*) entry );
}
bool wxEvtHandler::Disconnect( int id, int lastId, wxEventType eventType,
(this->*((wxEventFunction) (entry->m_fn)))(event);
- if (event.GetSkipped())
- return FALSE;
- else
+ if ( ! event.GetSkipped() )
return TRUE;
}
}