From f2fec40d2c3533e112e6d673fb113b77e65bfd66 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 30 Aug 2009 17:24:45 +0000 Subject: [PATCH] Don't generate duplicated events for clicks on tree +/- buttons. In multiple selection mode we process mouse events manually in wxTreeCtrl itself and already take care of mouse clicks on the buttons there so don't pass them on to the base class which would generate another event. Closes #11098 (thanks to Jonathan Liu). git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61783 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/treectrl.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/msw/treectrl.cpp b/src/msw/treectrl.cpp index 776740fa1c..f90ba117d3 100644 --- a/src/msw/treectrl.cpp +++ b/src/msw/treectrl.cpp @@ -2717,9 +2717,17 @@ wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) if ( !(tvht.flags & TVHT_ONITEM) ) { - if ( !HandleMouseEvent(nMsg, x, y, wParam) ) + if ( tvht.flags & TVHT_ONITEMBUTTON ) { - if ( tvht.flags & TVHT_ONITEMBUTTON ) + // either it's going to be handled by user code or + // we're going to use it ourselves to toggle the + // branch, in either case don't pass it to the base + // class which would generate another mouse click event + // for it even though it's already handled here + processed = true; + SetFocus(); + + if ( !HandleMouseEvent(nMsg, x, y, wParam) ) { if ( !IsExpanded(htItem) ) { @@ -2730,8 +2738,6 @@ wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) Collapse(htItem); } } - - processed = true; } m_focusLost = false; -- 2.47.2