@@ -790,13 +790,23 @@ def mtime(f):
790790 self .model .set_state (it , j , tree .STATE_MISSING , True in one_isdir )
791791 return different
792792
793- def popup_in_pane (self , pane ):
793+ def popup_in_pane (self , pane , event ):
794794 for (treeview , inid , outid ) in zip (self .treeview , self .focus_in_events , self .focus_out_events ):
795795 treeview .handler_block (inid )
796796 treeview .handler_block (outid )
797797 self .actiongroup .get_action ("DirCopyLeft" ).set_sensitive (pane > 0 )
798798 self .actiongroup .get_action ("DirCopyRight" ).set_sensitive (pane + 1 < self .num_panes )
799- self .popup_menu .popup (None , None , None , 3 , gtk .get_current_event_time ())
799+ if event :
800+ button = event .button
801+ time = event .time
802+ else :
803+ button = 0
804+ time = gtk .get_current_event_time ()
805+ self .popup_menu .popup (None , None , None , button , time )
806+
807+ def on_treeview_popup_menu (self , treeview ):
808+ self .popup_in_pane (self .treeview .index (treeview ), None )
809+ return True
800810
801811 def on_treeview_button_press_event (self , treeview , event ):
802812 # unselect other panes
@@ -812,7 +822,7 @@ def on_treeview_button_press_event(self, treeview, event):
812822 selected = self ._get_selected_paths ( self .treeview .index (treeview ) )
813823 if len (selected ) <= 1 and event .state == 0 :
814824 treeview .set_cursor ( path , col , 0 )
815- self .popup_in_pane ( self .treeview .index (treeview ) )
825+ self .popup_in_pane (self .treeview .index (treeview ), event )
816826 return event .state == 0
817827 return 0
818828
0 commit comments