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
This commit is contained in:
Vadim Zeitlin
2009-08-30 17:24:45 +00:00
parent 08c1613f88
commit f2fec40d2c

View File

@@ -2717,9 +2717,17 @@ wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
if ( !(tvht.flags & TVHT_ONITEM) ) 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) ) if ( !IsExpanded(htItem) )
{ {
@@ -2730,8 +2738,6 @@ wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
Collapse(htItem); Collapse(htItem);
} }
} }
processed = true;
} }
m_focusLost = false; m_focusLost = false;