From aa4aa74154b41ff212045e455ef6a9f31009e954 Mon Sep 17 00:00:00 2001 From: Igor Korot Date: Sat, 30 Jan 2016 18:54:09 +0100 Subject: [PATCH] Don't generate wxEVT_LIST_ITEM_RIGHT_CLICK outside of item area Make wxGenericListCtrl used under wxGTK and wxOSX behave the same as the native wxMSW wxListCtrl and wxTreeCtrl under all platforms and only generate ITEM_RIGHT_CLICK events when an item was actually clicked, i.e. don't generate them for the clicks completely outside of the client area. Closes #4711. --- docs/changes.txt | 1 + samples/listctrl/listtest.cpp | 9 +++++++++ samples/listctrl/listtest.h | 1 + src/generic/listctrl.cpp | 2 -- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 16cc8b9961..930eb9cae9 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -150,6 +150,7 @@ wxGTK: - Fix clearing of wxComboBox with wxCB_READONLY (Chuddah). - Fix setting "pressed" bitmap for wxToggleButton (Kevin B. McCarty). - Fix GTK+ warnings for wxFileDialog with wxFD_MULTIPLE style. +- Don't generate wxEVT_LIST_ITEM_RIGHT_CLICK outside of item area (Igor Korot). wxMSW: diff --git a/samples/listctrl/listtest.cpp b/samples/listctrl/listtest.cpp index d91afe13a6..8309ea9614 100644 --- a/samples/listctrl/listtest.cpp +++ b/samples/listctrl/listtest.cpp @@ -936,6 +936,8 @@ wxBEGIN_EVENT_TABLE(MyListCtrl, wxListCtrl) EVT_LIST_ITEM_ACTIVATED(LIST_CTRL, MyListCtrl::OnActivated) EVT_LIST_ITEM_FOCUSED(LIST_CTRL, MyListCtrl::OnFocused) + EVT_LIST_ITEM_RIGHT_CLICK(LIST_CTRL, MyListCtrl::OnItemRightClick) + EVT_LIST_COL_CLICK(LIST_CTRL, MyListCtrl::OnColClick) EVT_LIST_COL_RIGHT_CLICK(LIST_CTRL, MyListCtrl::OnColRightClick) EVT_LIST_COL_BEGIN_DRAG(LIST_CTRL, MyListCtrl::OnColBeginDrag) @@ -1118,6 +1120,13 @@ void MyListCtrl::OnFocused(wxListEvent& event) event.Skip(); } +void MyListCtrl::OnItemRightClick(wxListEvent& event) +{ + LogEvent(event, wxT("OnItemRightClick")); + + event.Skip(); +} + void MyListCtrl::OnListKeyDown(wxListEvent& event) { long item; diff --git a/samples/listctrl/listtest.h b/samples/listctrl/listtest.h index cc8e84b3b5..bdda54e951 100644 --- a/samples/listctrl/listtest.h +++ b/samples/listctrl/listtest.h @@ -61,6 +61,7 @@ public: void OnListKeyDown(wxListEvent& event); void OnActivated(wxListEvent& event); void OnFocused(wxListEvent& event); + void OnItemRightClick(wxListEvent& event); void OnCacheHint(wxListEvent& event); void OnChar(wxKeyEvent& event); diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index 81ba111f5c..f537f4eafa 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -2432,8 +2432,6 @@ void wxListMainWindow::OnMouse( wxMouseEvent &event ) // outside of any item if (event.RightDown()) { - SendNotify( (size_t) -1, wxEVT_LIST_ITEM_RIGHT_CLICK, event.GetPosition() ); - wxContextMenuEvent evtCtx( wxEVT_CONTEXT_MENU, GetParent()->GetId(),