about summary refs log tree commit diff stats
path: root/ranger/gui
diff options
context:
space:
mode:
Diffstat (limited to 'ranger/gui')
-rw-r--r--ranger/gui/defaultui.py7
-rw-r--r--ranger/gui/widgets/console.py11
-rw-r--r--ranger/gui/widgets/pager.py10
3 files changed, 22 insertions, 6 deletions
diff --git a/ranger/gui/defaultui.py b/ranger/gui/defaultui.py
index 462d394d..717bb925 100644
--- a/ranger/gui/defaultui.py
+++ b/ranger/gui/defaultui.py
@@ -1,6 +1,5 @@
 
 RATIO = ( 3, 3, 12, 9 )
-from ranger import log
 
 from ranger.gui.ui import UI
 class DefaultUI(UI):
@@ -61,14 +60,19 @@ class DefaultUI(UI):
 		return self.notify.display(*a, **k)
 
 	def close_pager(self):
+		if self.console.visible:
+			self.console.focused = True
 		self.pager.visible = False
 		self.pager.focused = False
 		self.filelist_container.visible = True
 	
 	def open_pager(self):
+		if self.console.focused:
+			self.console.focused = False
 		self.pager.visible = True
 		self.pager.focused = True
 		self.filelist_container.visible = False
+		return self.pager
 
 	def open_embedded_pager(self):
 		self.filelist_container.open_pager()
@@ -86,6 +90,7 @@ class DefaultUI(UI):
 	def close_console(self):
 		self.console.visible = False
 		self.status.visible = True
+		self.close_pager()
 
 	def open_pman(self):
 		self.filelist_container.visible = False
diff --git a/ranger/gui/widgets/console.py b/ranger/gui/widgets/console.py
index db92908b..22b9831d 100644
--- a/ranger/gui/widgets/console.py
+++ b/ranger/gui/widgets/console.py
@@ -245,17 +245,22 @@ class CommandConsole(ConsoleWithTab):
 		Console.execute(self)
 
 	def _get_cmd(self):
+		command_class = self._get_cmd_class()
+		if command_class:
+			return command_class(self.line, self.mode)
+		else:
+			return None
+
+	def _get_cmd_class(self):
 		try:
 			command_name = self.line.split()[0]
 		except IndexError:
 			return None
 
 		try:
-			command_class = commands.by_name[command_name]
+			return commands.by_name[command_name]
 		except KeyError:
 			return None
-
-		return command_class(self.line, self.mode)
 	
 	def _get_tab(self):
 		if ' ' in self.line:
diff --git a/ranger/gui/widgets/pager.py b/ranger/gui/widgets/pager.py
index c149f89a..1664cc4b 100644
--- a/ranger/gui/widgets/pager.py
+++ b/ranger/gui/widgets/pager.py
@@ -83,11 +83,14 @@ class Pager(Widget):
 				cmd.execute_wrap(self)
 				self.env.key_clear()
 	
-	def set_source(self, source):
+	def set_source(self, source, strip=False):
 		if self.source and self.source_is_stream:
 			self.source.close()
 
-		if hasattr(source, '__getitem__'):
+		if isinstance(source, str):
+			self.source_is_stream = False
+			self.lines = source.split('\n')
+		elif hasattr(source, '__getitem__'):
 			self.source_is_stream = False
 			self.lines = source
 		elif hasattr(source, 'readline'):
@@ -98,6 +101,9 @@ class Pager(Widget):
 			self.source_is_stream = False
 			return False
 
+		if not self.source_is_stream and strip:
+			self.lines = map(lambda x: x.strip(), self.lines)
+
 		self.source = source
 		return True