[kupfer] data, browser: Return new root in DataController.soft_reset



commit 48f8e41726998ecf19602a301d8d710e3d0e9321
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date:   Thu Sep 10 04:32:50 2009 +0200

    data, browser: Return new root in DataController.soft_reset
    
    To solve the soft update problem we simply receive the new root
    directly.

 kupfer/browser.py |    9 ++++++---
 kupfer/data.py    |    3 ++-
 2 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/kupfer/browser.py b/kupfer/browser.py
index d7415a9..4bd9e89 100644
--- a/kupfer/browser.py
+++ b/kupfer/browser.py
@@ -1217,9 +1217,12 @@ class Interface (gobject.GObject):
 
 		pane = self._pane_for_widget(self.current)
 		if not self.get_in_text_mode() and self._reset_to_toplevel:
-			print "reset to toplevel"
-			self.data_controller.soft_reset(pane)
-			self._reset_to_toplevel = False
+			newsrc = self.data_controller.soft_reset(pane)
+			if newsrc:
+				print "reset to toplevel", newsrc
+				self.current.set_source(newsrc)
+				self._reset_to_toplevel = False
+
 		self.data_controller.search(pane, key=text, context=text,
 				text_mode=self.get_in_text_mode())
 
diff --git a/kupfer/data.py b/kupfer/data.py
index b177f9d..b87dde2 100644
--- a/kupfer/data.py
+++ b/kupfer/data.py
@@ -560,6 +560,7 @@ class LeafPane (Pane, pretty.OutputMixin):
 		Pane.reset(self)
 		while self.pop_source():
 			pass
+		return self.source
 
 	def search(self, key=u"", context=None, text_mode=False):
 		"""
@@ -851,7 +852,7 @@ class DataController (gobject.GObject, pretty.OutputMixin):
 		if pane is ActionPane:
 			return
 		panectl = self._panectl_table[pane]
-		panectl.soft_reset()
+		return panectl.soft_reset()
 
 	def cancel_search(self, pane=None):
 		"""Cancel any outstanding search, or the search for @pane"""



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