Skip to content

Commit 6976fc4

Browse files
committed
Respond to context menu signal for DirDiff treeviews
1 parent cfc6f4f commit 6976fc4

2 files changed

Lines changed: 16 additions & 3 deletions

File tree

data/ui/dirdiff.ui

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
<signal handler="on_treeview_button_press_event" last_modification_time="Wed, 19 Mar 2003 10:22:44 GMT" name="button_press_event"/>
5555
<signal handler="on_treeview_cursor_changed" last_modification_time="Sun, 14 Dec 2003 21:04:29 GMT" name="cursor_changed"/>
5656
<signal handler="on_treeview_key_press_event" last_modification_time="Sun, 14 Dec 2003 22:09:35 GMT" name="key_press_event"/>
57+
<signal handler="on_treeview_popup_menu" name="popup-menu"/>
5758
</object>
5859
</child>
5960
</object>
@@ -89,6 +90,7 @@
8990
<signal handler="on_treeview_button_press_event" last_modification_time="Wed, 19 Mar 2003 10:22:58 GMT" name="button_press_event"/>
9091
<signal handler="on_treeview_key_press_event" last_modification_time="Sun, 14 Dec 2003 22:15:38 GMT" name="key_press_event"/>
9192
<signal handler="on_treeview_cursor_changed" last_modification_time="Sun, 14 Dec 2003 22:22:39 GMT" name="cursor_changed"/>
93+
<signal handler="on_treeview_popup_menu" name="popup-menu"/>
9294
</object>
9395
</child>
9496
</object>
@@ -244,6 +246,7 @@
244246
<signal handler="on_treeview_button_press_event" last_modification_time="Wed, 19 Mar 2003 10:22:58 GMT" name="button_press_event"/>
245247
<signal handler="on_treeview_key_press_event" last_modification_time="Sun, 14 Dec 2003 22:15:54 GMT" name="key_press_event"/>
246248
<signal handler="on_treeview_cursor_changed" last_modification_time="Sun, 14 Dec 2003 22:22:48 GMT" name="cursor_changed"/>
249+
<signal handler="on_treeview_popup_menu" name="popup-menu"/>
247250
</object>
248251
</child>
249252
</object>

meld/dirdiff.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)