Revert "Skip mouse button release events in wxGenericTreeCtrl."
This reverts r76094 as it broke label editing in the control. See #16055, closes #16573. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77891 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -3709,46 +3709,39 @@ void wxGenericTreeCtrl::OnMouse( wxMouseEvent &event )
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( event.LeftUp() || event.RightUp() )
|
else if ( (event.LeftUp() || event.RightUp()) && m_isDragging )
|
||||||
{
|
{
|
||||||
if ( m_isDragging )
|
ReleaseMouse();
|
||||||
|
|
||||||
|
// erase the highlighting
|
||||||
|
DrawDropEffect(m_dropTarget);
|
||||||
|
|
||||||
|
if ( m_oldSelection )
|
||||||
{
|
{
|
||||||
ReleaseMouse();
|
m_oldSelection->SetHilight(true);
|
||||||
|
RefreshLine(m_oldSelection);
|
||||||
|
m_oldSelection = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
// erase the highlighting
|
// generate the drag end event
|
||||||
DrawDropEffect(m_dropTarget);
|
wxTreeEvent eventEndDrag(wxEVT_TREE_END_DRAG, this, item);
|
||||||
|
|
||||||
if ( m_oldSelection )
|
eventEndDrag.m_pointDrag = CalcScrolledPosition(pt);
|
||||||
{
|
|
||||||
m_oldSelection->SetHilight(true);
|
|
||||||
RefreshLine(m_oldSelection);
|
|
||||||
m_oldSelection = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// generate the drag end event
|
(void)GetEventHandler()->ProcessEvent(eventEndDrag);
|
||||||
wxTreeEvent eventEndDrag(wxEVT_TREE_END_DRAG, this, item);
|
|
||||||
|
|
||||||
eventEndDrag.m_pointDrag = CalcScrolledPosition(pt);
|
m_isDragging = false;
|
||||||
|
m_dropTarget = NULL;
|
||||||
|
|
||||||
(void)GetEventHandler()->ProcessEvent(eventEndDrag);
|
SetCursor(m_oldCursor);
|
||||||
|
|
||||||
m_isDragging = false;
|
|
||||||
m_dropTarget = NULL;
|
|
||||||
|
|
||||||
SetCursor(m_oldCursor);
|
|
||||||
|
|
||||||
#if defined( __WXMSW__ ) || defined(__WXMAC__) || defined(__WXGTK20__)
|
#if defined( __WXMSW__ ) || defined(__WXMAC__) || defined(__WXGTK20__)
|
||||||
Update();
|
Update();
|
||||||
#else
|
#else
|
||||||
// TODO: remove this call or use wxEventLoopBase::GetActive()->YieldFor(wxEVT_CATEGORY_UI)
|
// TODO: remove this call or use wxEventLoopBase::GetActive()->YieldFor(wxEVT_CATEGORY_UI)
|
||||||
// instead (needs to be tested!)
|
// instead (needs to be tested!)
|
||||||
wxYieldIfNeeded();
|
wxYieldIfNeeded();
|
||||||
#endif
|
#endif
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
event.Skip();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user