summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2010-04-13 19:32:11 +0200
committerhut <hut@lavabit.com>2010-04-13 19:32:11 +0200
commit661ab7a384bbff355c3ee44c824ba8205afc23f5 (patch)
treed3346f5a1b5fa3ba4235c5ee81715569e4c394ff
parent447cbcd65588eafdb85b407750602c0fdd591ef4 (diff)
downloadranger-661ab7a384bbff355c3ee44c824ba8205afc23f5.tar.gz
dirarg: tmp
-rw-r--r--ranger/core/actions.py17
1 files changed, 9 insertions, 8 deletions
diff --git a/ranger/core/actions.py b/ranger/core/actions.py
index df623c77..929dec31 100644
--- a/ranger/core/actions.py
+++ b/ranger/core/actions.py
@@ -544,15 +544,16 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 
 	def copy(self, narg=None, dirarg=None):
 		"""Copy the selected items"""
+		cwd = self.env.cwd
 		direction = Direction(dirarg or {})
-		pos, selected = direction.select(
-				override=narg,
-				lst=self.env.cwd.files,
-				current=self.env.cwd.pointer,
-				pagesize=self.env.termsize[0])
-
-		selected = selected or self.env.get_selection()
-		self.env.copy = set(f for f in selected if f in self.env.cwd.files)
+		if direction.vertical():
+			pos, selected = direction.select(
+					override=narg, lst=cwd.files, current=currentpos,
+					pagesize=self.env.termsize[0])
+		else:
+			pos = currentpos + (narg or 0)
+			selected = (f for f in self.env.get_selection() if f in cwd.files)
+		self.env.copy = set(selected)
 		self.env.copy.add(self.env.cwd.pointed_obj)
 		self.env.cut = False
 		self.env.cwd.pointer = pos