[meld/meld-1-8] Backport fix for bgo#729280 to 1.8



commit 845b749452a2aa8c3ee1da7ae77225b9738be2c4
Author: Daniel Macks <dmacks netspace org>
Date:   Mon Jun 9 06:26:13 2014 +1000

    Backport fix for bgo#729280 to 1.8

 meld/filediff.py |   10 ++++++++++
 meld/vcview.py   |   17 ++++++++++++++++-
 2 files changed, 26 insertions(+), 1 deletions(-)
---
diff --git a/meld/filediff.py b/meld/filediff.py
index f270fa8..2593aeb 100644
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@ -710,16 +710,26 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
         new_buf.place_cursor(new_buf.get_iter_at_line(new_line))
         self.textview[new_pane].scroll_to_mark(new_buf.get_insert(), 0.1)
 
+    def _set_external_action_sensitivity(self):
+        have_file = self.focus_pane is not None
+        try:
+            self.main_actiongroup.get_action("OpenExternal").set_sensitive(
+                have_file)
+        except AttributeError:
+            pass
+
     def on_textview_focus_in_event(self, view, event):
         self.focus_pane = view
         self.findbar.textview = view
         self.on_cursor_position_changed(view.get_buffer(), None, True)
         self._set_save_action_sensitivity()
         self._set_merge_action_sensitivity()
+        self._set_external_action_sensitivity()
         self.update_text_actions_sensitivity()
 
     def on_textview_focus_out_event(self, view, event):
         self._set_merge_action_sensitivity()
+        self._set_external_action_sensitivity()
 
     def _after_text_modified(self, buffer, startline, sizechange):
         if self.num_panes > 1:
diff --git a/meld/vcview.py b/meld/vcview.py
index c4f50d8..ef3638f 100644
--- a/meld/vcview.py
+++ b/meld/vcview.py
@@ -207,6 +207,7 @@ class VcView(melddoc.MeldDoc, gnomeglade.Component):
         self.ui_file = paths.ui_dir("vcview-ui.xml")
         self.actiongroup = gtk.ActionGroup('VcviewActions')
         self.actiongroup.set_translation_domain("meld")
+        self.main_actiongroup = None
         self.actiongroup.add_actions(actions)
         self.actiongroup.add_toggle_actions(toggleactions)
         for action in ("VcCompare", "VcFlatten", "VcShowModified",
@@ -291,10 +292,24 @@ class VcView(melddoc.MeldDoc, gnomeglade.Component):
         self.combobox_vcs.show()
         self.combobox_vcs.connect("changed", self.on_vc_change)
 
+    def _set_external_action_sensitivity(self, focused):
+        try:
+            self.main_actiongroup.get_action("OpenExternal").set_sensitive(
+                focused)
+        except AttributeError:
+            pass
+
     def on_container_switch_in_event(self, ui):
-        melddoc.MeldDoc.on_container_switch_in_event(self, ui)
+        self.main_actiongroup = [a for a in ui.get_action_groups()
+                                 if a.get_name() == "MainActions"][0]
+        super(VcView, self).on_container_switch_in_event(ui)
+        self._set_external_action_sensitivity(True)
         self.scheduler.add_task(self.on_treeview_cursor_changed)
 
+    def on_container_switch_out_event(self, ui):
+        self._set_external_action_sensitivity(False)
+        super(VcView, self).on_container_switch_out_event(ui)
+
     def update_visible_columns(self):
         for data_id in self.column_name_map:
             col = self.treeview.get_column(self.column_name_map[data_id])


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]