@@ -231,6 +231,7 @@ def __init__(self, parent, action_registerer, settings=None):
231231 self ._editor = None
232232 self ._execution_results = None
233233 self ._resources = []
234+ self ._right_click = False
234235 """
235236 self.SetBackgroundColour('white') # TODO get background color from def
236237 """
@@ -264,12 +265,18 @@ def _bind_tree_events(self):
264265 self .Bind (wx .EVT_LEFT_DCLICK , self .OnDoubleClick )
265266 self .Bind (wx .EVT_TREE_SEL_CHANGED , self .OnSelChanged )
266267 self .Bind (wx .EVT_TREE_ITEM_EXPANDING , self .OnTreeItemExpanding )
267- self .Bind (wx .EVT_TREE_ITEM_RIGHT_CLICK , self .OnRightClick )
268+ self .Bind (wx .EVT_RIGHT_DOWN , self .OnRightClick )
269+ self .Bind (wx .EVT_TREE_SEL_CHANGING , self .OnSelection )
270+ # self.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.OnRightClick)
268271 self .Bind (wx .EVT_TREE_ITEM_ACTIVATED , self .OnItemActivated )
269272 self .Bind (customtreectrl .EVT_TREE_ITEM_CHECKED , self .OnTreeItemChecked )
270273 self .Bind (wx .EVT_TREE_ITEM_COLLAPSING , self .OnTreeItemCollapsing )
271274 self .Bind (wx .EVT_CLOSE , self .OnClose )
272275
276+ def OnSelection (self , event ):
277+ if self ._right_click :
278+ event .Skip ()
279+
273280 def OnDoubleClick (self , event ):
274281 item , pos = self .HitTest (self .ScreenToClient (wx .GetMousePosition ()))
275282 if item :
@@ -1031,14 +1038,20 @@ def OnLeftArrow(self, event):
10311038 event .Skip ()
10321039
10331040 def OnRightClick (self , event ):
1041+ if not self ._right_click :
1042+ self ._right_click = True
10341043 handler = None
1035- if hasattr (event , 'GetItem' ):
1036- handler = self ._controller .get_handler (event .GetItem ())
1037-
1044+ # if hasattr(event, 'GetItem'):
1045+ # handler = self._controller.get_handler(event.GetItem())
1046+ item , pos = self .HitTest (self .ScreenToClient (wx .GetMousePosition ()), wx .TREE_HITTEST_ONITEMLABEL )
1047+ if item :
1048+ print (f"DEBUG: tree mouse RightClick pos={ pos } " )
1049+ handler = self .GetItemData (item )
10381050 if handler :
10391051 # if not self.IsExpanded(handler.node):
10401052 # self.Expand(handler.node)
10411053 handler .show_popup ()
1054+ self ._right_click = False
10421055
10431056 def OnNewTestCase (self , event ):
10441057 handler = self ._controller .get_handler ()
0 commit comments