#pragma hdrstop
#endif
-#include "wx/ribbon/toolbar.h"
-
#if wxUSE_RIBBON
+#include "wx/ribbon/toolbar.h"
#include "wx/ribbon/art.h"
#include "wx/ribbon/bar.h"
#include "wx/dcbuffer.h"
what = wxRIBBON_TOOLBAR_TOOL_DROPDOWN_HOVERED;
new_hover->state |= what;
-
+
if(new_hover == m_active_tool)
{
new_hover->state &= ~wxRIBBON_TOOLBAR_TOOL_ACTIVE_MASK;
notification.SetBar(this);
ProcessEvent(notification);
}
- m_active_tool->state &= ~wxRIBBON_TOOLBAR_TOOL_ACTIVE_MASK;
- m_active_tool = NULL;
- Refresh(false);
+
+ // Notice that m_active_tool could have been reset by the event handler
+ // above so we need to test it again.
+ if (m_active_tool)
+ {
+ m_active_tool->state &= ~wxRIBBON_TOOLBAR_TOOL_ACTIVE_MASK;
+ m_active_tool = NULL;
+ Refresh(false);
+ }
}
}