Skip to content

Commit 978fd58

Browse files
committed
dirdiff: Replace handler block/unblock dance with central sensitivity
We were previously doing a weird dance with block/unblock handling of signals to handle correctly setting sensitivity when we swapped panes, but also not doing that when we lost focus because we popped up a menu, but then doing some sensitivity setting twice anyway, and... It's better now.
1 parent 39e9a37 commit 978fd58

1 file changed

Lines changed: 2 additions & 27 deletions

File tree

meld/dirdiff.py

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -534,8 +534,6 @@ def on_custom_filter_menu_toggled(self, item):
534534
)
535535

536536
def _cleanup_filter_menu_button(self, ui):
537-
if self.popup_deactivate_id:
538-
self.popup_menu.disconnect(self.popup_deactivate_id)
539537
if self.custom_merge_id:
540538
ui.remove_ui(self.custom_merge_id)
541539
if self.filter_actiongroup in ui.get_action_groups():
@@ -546,8 +544,6 @@ def _create_filter_menu_button(self, ui):
546544
self.custom_merge_id = ui.new_merge_id()
547545
for x in self.filter_ui:
548546
ui.add_ui(self.custom_merge_id, *x)
549-
self.popup_deactivate_id = self.popup_menu.connect(
550-
"deactivate", self.on_popup_deactivate_event)
551547
self.custom_popup = ui.get_widget("/CustomPopup")
552548
self.filter_menu_button = ui.get_widget(
553549
"/Toolbar/FilterActions/CustomFilterMenu")
@@ -1221,27 +1217,13 @@ def on_treeview_row_collapsed(self, view, me, path):
12211217
self._do_to_others(view, self.treeview, "collapse_row", (path,))
12221218
self._update_diffmaps()
12231219

1224-
def on_popup_deactivate_event(self, popup):
1225-
for (treeview, inid, outid) in zip(
1226-
self.treeview, self.focus_in_events, self.focus_out_events):
1227-
treeview.handler_unblock(inid)
1228-
treeview.handler_unblock(outid)
1229-
12301220
def on_treeview_focus_in_event(self, tree, event):
12311221
self.focus_pane = tree
1232-
pane = self.treeview.index(tree)
1233-
self.on_treeview_selection_changed(tree.get_selection(), pane)
1222+
self.update_action_sensitivity()
12341223
tree.emit("cursor-changed")
12351224

12361225
def on_treeview_focus_out_event(self, tree, event):
1237-
for action in ("DirCompare", "DirCopyLeft", "DirCopyRight",
1238-
"DirDelete", "Hide"):
1239-
self.actiongroup.get_action(action).set_sensitive(False)
1240-
try:
1241-
self.main_actiongroup.get_action("OpenExternal").set_sensitive(
1242-
False)
1243-
except AttributeError:
1244-
pass
1226+
self.update_action_sensitivity()
12451227

12461228
def run_diff_from_iter(self, it):
12471229
row_paths = self.model.value_paths(it)
@@ -1484,13 +1466,6 @@ def format_name_override(f):
14841466
return different
14851467

14861468
def popup_in_pane(self, pane, event):
1487-
for (treeview, inid, outid) in zip(
1488-
self.treeview, self.focus_in_events, self.focus_out_events):
1489-
treeview.handler_block(inid)
1490-
treeview.handler_block(outid)
1491-
self.actiongroup.get_action("DirCopyLeft").set_sensitive(pane > 0)
1492-
self.actiongroup.get_action("DirCopyRight").set_sensitive(
1493-
pane + 1 < self.num_panes)
14941469
if event:
14951470
button = event.button
14961471
time = event.time

0 commit comments

Comments
 (0)