[meld] Unify some pane focus handling in MeldDoc



commit e03492ac2068b2dc5868919c9cc17688b7a6eafa
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sun Jun 26 08:26:40 2011 +1000

    Unify some pane focus handling in MeldDoc

 meld/dirdiff.py  |   12 ++++--------
 meld/filediff.py |   14 ++++++--------
 meld/melddoc.py  |    2 ++
 3 files changed, 12 insertions(+), 16 deletions(-)
---
diff --git a/meld/dirdiff.py b/meld/dirdiff.py
index 7984bd6..834187b 100644
--- a/meld/dirdiff.py
+++ b/meld/dirdiff.py
@@ -283,7 +283,7 @@ class DirDiff(melddoc.MeldDoc, gnomeglade.Component):
             self.focus_out_events.append(handler_id)
         self.current_path, self.prev_path, self.next_path = None, None, None
         self.on_treeview_focus_out_event(None, None)
-        self.treeview_focussed = None
+        self.focus_pane = None
 
         lastchanged_label = gtk.Label()
         lastchanged_label.set_size_request(100, -1)
@@ -379,10 +379,6 @@ class DirDiff(melddoc.MeldDoc, gnomeglade.Component):
         self._create_filter_menu_button(ui)
         self.ui_manager = ui
 
-        if self.treeview_focussed:
-            self.scheduler.add_task(self.treeview_focussed.grab_focus)
-            self.scheduler.add_task(self.on_treeview_cursor_changed)
-
     def on_container_switch_out_event(self, ui):
         self._cleanup_filter_menu_button(ui)
         melddoc.MeldDoc.on_container_switch_out_event(self, ui)
@@ -922,7 +918,7 @@ class DirDiff(melddoc.MeldDoc, gnomeglade.Component):
             treeview.handler_unblock(outid)
 
     def on_treeview_focus_in_event(self, tree, event):
-        self.treeview_focussed = tree
+        self.focus_pane = tree
         pane = self.treeview.index(tree)
         self.actiongroup.get_action("DirCopyLeft").set_sensitive(pane > 0)
         self.actiongroup.get_action("DirCopyRight").set_sensitive(pane+1 < self.num_panes)
@@ -1232,8 +1228,8 @@ class DirDiff(melddoc.MeldDoc, gnomeglade.Component):
             self._update_item_state( model.get_iter(path) )
 
     def next_diff(self, direction):
-        if self.treeview_focussed:
-            pane = self.treeview.index(self.treeview_focussed)
+        if self.focus_pane:
+            pane = self.treeview.index(self.focus_pane)
         else:
             pane = 0
         if direction == gtk.gdk.SCROLL_UP:
diff --git a/meld/filediff.py b/meld/filediff.py
index b7ec715..b5a45d9 100644
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@ -176,7 +176,7 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
         self.load_font()
         self.deleted_lines_pending = -1
         self.textview_overwrite = 0
-        self.textview_focussed = None
+        self.focus_pane = None
         self.textview_overwrite_handlers = [ t.connect("toggle-overwrite", self.on_textview_toggle_overwrite) for t in self.textview ]
         self.textbuffer = [v.get_buffer() for v in self.textview]
         self.buffer_texts = [meldbuffer.BufferLines(b) for b in self.textbuffer]
@@ -313,8 +313,6 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
     def on_container_switch_in_event(self, ui):
         melddoc.MeldDoc.on_container_switch_in_event(self, ui)
         # FIXME: If no focussed textview, action sensitivity will be unset
-        if self.textview_focussed:
-            self.scheduler.add_task(self.textview_focussed.grab_focus)
 
     def on_text_filters_changed(self, app):
         relevant_change = self.create_text_filters()
@@ -647,7 +645,7 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
         self.textview[new_pane].scroll_to_mark(new_buf.get_insert(), 0.1)
 
     def on_textview_focus_in_event(self, view, event):
-        self.textview_focussed = view
+        self.focus_pane = view
         self.findbar.textview = view
         self.on_cursor_position_changed(view.get_buffer(), None, True)
         self._set_merge_action_sensitivity()
@@ -865,19 +863,19 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
 
     def on_find_activate(self, *args):
         selected_text = self.get_selected_text()
-        self.findbar.start_find(self.textview_focussed, selected_text)
+        self.findbar.start_find(self.focus_pane, selected_text)
         self.keymask = 0
 
     def on_replace_activate(self, *args):
         selected_text = self.get_selected_text()
-        self.findbar.start_replace(self.textview_focussed, selected_text)
+        self.findbar.start_replace(self.focus_pane, selected_text)
         self.keymask = 0
 
     def on_find_next_activate(self, *args):
-        self.findbar.start_find_next(self.textview_focussed)
+        self.findbar.start_find_next(self.focus_pane)
 
     def on_find_previous_activate(self, *args):
-        self.findbar.start_find_previous(self.textview_focussed)
+        self.findbar.start_find_previous(self.focus_pane)
 
     def on_filediff__key_press_event(self, entry, event):
         if event.keyval == gtk.keysyms.Escape:
diff --git a/meld/melddoc.py b/meld/melddoc.py
index e93fc00..0bf38b9 100644
--- a/meld/melddoc.py
+++ b/meld/melddoc.py
@@ -149,6 +149,8 @@ class MeldDoc(gobject.GObject):
         uimanager.insert_action_group(self.actiongroup, -1)
         self.popup_menu = uimanager.get_widget("/Popup")
         uimanager.ensure_update()
+        if hasattr(self, "focus_pane") and self.focus_pane:
+            self.scheduler.add_task(self.focus_pane.grab_focus)
 
     def on_container_switch_out_event(self, uimanager):
         """Called when the container app switches away from this tab.



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