]> git.saurik.com Git - wxWidgets.git/commitdiff
Avoid crash when releasing the mouse in wxRibbonToolBar.
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 2 Nov 2010 11:57:03 +0000 (11:57 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 2 Nov 2010 11:57:03 +0000 (11:57 +0000)
The active tool pointer can be changed/set to NULL by the event handler in
wxRibbonToolBar::OnMouseUp() so test for it before using it after processing
the event.

Closes #12640.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65989 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/ribbon/toolbar.cpp

index 475db49bf0b37602b2b26a9ae3c1ace2e3da69a7..cd4817e0a2edbcdfaa90a6727c4876922d99fb15 100644 (file)
@@ -661,9 +661,15 @@ void wxRibbonToolBar::OnMouseUp(wxMouseEvent& WXUNUSED(evt))
             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);
+        }
     }
 }