Include the location of the item in the ITEM_MENU event generated by the menu key, and send the ITEM_MENU event after the RIGHT_CLICK event (consistent with MSW, but this behavior may change). The latter ITEM_MENU event had previously not been sent at all.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34204 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -2693,8 +2693,15 @@ void wxGenericTreeCtrl::OnChar( wxKeyEvent &event )
|
|||||||
|
|
||||||
case WXK_MENU:
|
case WXK_MENU:
|
||||||
{
|
{
|
||||||
|
// Use the item's bounding rectangle to determine position for the event
|
||||||
|
wxRect ItemRect;
|
||||||
|
GetBoundingRect(m_current, ItemRect, true);
|
||||||
|
|
||||||
wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_MENU, GetId() );
|
wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_MENU, GetId() );
|
||||||
event.m_item = m_current;
|
event.m_item = m_current;
|
||||||
|
// Use the left edge, vertical middle
|
||||||
|
event.m_pointDrag = wxPoint(ItemRect.GetX(),
|
||||||
|
ItemRect.GetY() + ItemRect.GetHeight() / 2);
|
||||||
event.SetEventObject( this );
|
event.SetEventObject( this );
|
||||||
GetEventHandler()->ProcessEvent( event );
|
GetEventHandler()->ProcessEvent( event );
|
||||||
break;
|
break;
|
||||||
@@ -3226,6 +3233,14 @@ void wxGenericTreeCtrl::OnMouse( wxMouseEvent &event )
|
|||||||
nevent.m_pointDrag = CalcScrolledPosition(pt);
|
nevent.m_pointDrag = CalcScrolledPosition(pt);
|
||||||
nevent.SetEventObject(this);
|
nevent.SetEventObject(this);
|
||||||
event.Skip(!GetEventHandler()->ProcessEvent(nevent));
|
event.Skip(!GetEventHandler()->ProcessEvent(nevent));
|
||||||
|
|
||||||
|
// Consistent with MSW (for now), send the ITEM_MENU *after*
|
||||||
|
// the RIGHT_CLICK event. TODO: This behavior may change.
|
||||||
|
wxTreeEvent nevent2(wxEVT_COMMAND_TREE_ITEM_MENU, GetId());
|
||||||
|
nevent2.m_item = item;
|
||||||
|
nevent2.m_pointDrag = CalcScrolledPosition(pt);
|
||||||
|
nevent2.SetEventObject(this);
|
||||||
|
GetEventHandler()->ProcessEvent(nevent2);
|
||||||
}
|
}
|
||||||
else if ( event.LeftUp() )
|
else if ( event.LeftUp() )
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user