]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/event.cpp
[ 1936700 ] wxCAL_SHOW_WEEK_NUMBERS, slightly modified
[wxWidgets.git] / src / common / event.cpp
index 6ba58950899f36ce1a528e757c9e6d4492ae598d..817f40e4a896829f7105c8bd96c072d1d68a58f2 100644 (file)
@@ -183,6 +183,7 @@ DEFINE_EVENT_TYPE(wxEVT_COMMAND_COMBOBOX_SELECTED)
 DEFINE_EVENT_TYPE(wxEVT_COMMAND_TOOL_RCLICKED)
 DEFINE_EVENT_TYPE(wxEVT_COMMAND_TOOL_ENTER)
 DEFINE_EVENT_TYPE(wxEVT_COMMAND_SPINCTRL_UPDATED)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_SPINCTRLDOUBLE_UPDATED)
 DEFINE_EVENT_TYPE(wxEVT_COMMAND_TOOL_DROPDOWN_CLICKED)
 
 // Mouse event types
@@ -1186,7 +1187,17 @@ void wxEvtHandler::ProcessPendingEvents()
     // if there are no more pending events left, we don't need to stay in this
     // list
     if ( m_pendingEvents->IsEmpty() )
+    {
+#if wxUSE_THREADS
+        if (wxPendingEventsLocker)
+            wxENTER_CRIT_SECT(*wxPendingEventsLocker);
+#endif
         wxPendingEvents->DeleteObject(this);
+#if wxUSE_THREADS
+        if (wxPendingEventsLocker)
+            wxLEAVE_CRIT_SECT(*wxPendingEventsLocker);
+#endif
+    }
 
     wxLEAVE_CRIT_SECT( m_pendingEventsLock );
 
@@ -1376,7 +1387,7 @@ void wxEvtHandler::Connect( int id, int lastId,
 
 #if wxUSE_WEAKREF
     // Make sure we get to know when a sink is destroyed
-    if ( eventSink )
+    if ( eventSink && eventSink != this )
     {
         wxEventConnectionRef *evtConnRef = FindRefInTrackerList(eventSink);
         if ( evtConnRef )
@@ -1397,7 +1408,7 @@ bool wxEvtHandler::Disconnect( int id, int lastId, wxEventType eventType,
 
 #if wxUSE_WEAKREF
     // Remove connection from tracker node (wxEventConnectionRef)
-    if ( eventSink )
+    if ( eventSink && eventSink != this )
     {
         wxEventConnectionRef *evtConnRef = FindRefInTrackerList(eventSink);
         if ( evtConnRef )