]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/tbarbase.cpp
BIG glitch.
[wxWidgets.git] / src / common / tbarbase.cpp
index 218ecbea4f59e3ab2271ab7fb6844192ff4bac6a..6f7793b419b498309e14be46d99517939236afc7 100644 (file)
@@ -24,6 +24,8 @@
 #include "wx/wx.h"
 #endif
 
+#include "wx/frame.h"
+
 // For ::UpdateWindow
 #ifdef __WXMSW__
 #include <windows.h>
@@ -147,6 +149,7 @@ bool wxToolBarBase::OnLeftClick(int toolIndex, bool toggleDown)
     event.SetEventObject(this);
     event.SetExtraLong((long) toggleDown);
 
+    // Send events to this toolbar instead (and thence up the window hierarchy)
     GetEventHandler()->ProcessEvent(event);
 
     return TRUE;
@@ -217,6 +220,7 @@ wxToolBarTool *wxToolBarBase::AddTool(int index, const wxBitmap& bitmap, const w
 void wxToolBarBase::AddSeparator ()
 {
   wxToolBarTool *tool = new wxToolBarTool;
+  tool->m_index = -1;
   tool->m_toolStyle = wxTOOL_STYLE_SEPARATOR;
   m_tools.Append(-1, tool);
 }
@@ -732,6 +736,8 @@ void wxToolBarBase::OnIdle(wxIdleEvent& event)
 // Do the toolbar button updates (check for EVT_UPDATE_UI handlers)
 void wxToolBarBase::DoToolbarUpdates()
 {
+    wxEvtHandler* evtHandler = GetEventHandler() ;
+
     wxNode* node = GetTools().First();
     while (node)
     {
@@ -740,7 +746,7 @@ void wxToolBarBase::DoToolbarUpdates()
         wxUpdateUIEvent event(tool->m_index);
         event.SetEventObject(this);
 
-        if (GetEventHandler()->ProcessEvent(event))
+        if (evtHandler->ProcessEvent(event))
         {
             if (event.GetSetEnabled())
                 EnableTool(tool->m_index, event.GetEnabled());