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);
+ }
}
}