]> git.saurik.com Git - wxWidgets.git/commitdiff
Completely re-construct the wxComboCtrl textctrl-events instead of just redirecting...
authorJaakko Salli <jaakko.salli@dnainternet.net>
Wed, 13 Apr 2011 16:35:59 +0000 (16:35 +0000)
committerJaakko Salli <jaakko.salli@dnainternet.net>
Wed, 13 Apr 2011 16:35:59 +0000 (16:35 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67439 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/combocmn.cpp

index bf1ad43c3ab7b82528fcdf0eb8425bc66d12e428..afd9a7e4f88d1b42775c72b0ef729344a4478799 100644 (file)
@@ -1754,6 +1754,13 @@ void wxComboCtrlBase::RecalcAndRefresh()
 
 void wxComboCtrlBase::OnTextCtrlEvent(wxCommandEvent& event)
 {
+    // Avoid infinite recursion
+    if ( event.GetEventObject() == this )
+    {
+        event.Skip();
+        return;
+    }
+
     if ( event.GetEventType() == wxEVT_COMMAND_TEXT_UPDATED )
     {
         if ( m_ignoreEvtText > 0 )
@@ -1763,12 +1770,13 @@ void wxComboCtrlBase::OnTextCtrlEvent(wxCommandEvent& event)
         }
     }
 
-    // Change event id, object and string before relaying it forward
-    event.SetId(GetId());
-    wxString s = event.GetString();
-    event.SetEventObject(this);
-    event.SetString(s);
-    event.Skip();
+    event.StopPropagation();
+
+    // For safety, completely re-create a new wxCommandEvent
+    wxCommandEvent evt2(event.GetEventType(), GetId());
+    evt2.SetEventObject(this);
+    evt2.SetString(event.GetString());
+    HandleWindowEvent(evt2);
 }
 
 // call if cursor is on button area or mouse is captured for the button