diff options
author | hut <hut@lavabit.com> | 2010-04-14 00:53:39 +0200 |
---|---|---|
committer | hut <hut@lavabit.com> | 2010-04-14 00:53:39 +0200 |
commit | 3dd1793a9f60b318c73e1a0d5eade6349ad322fa (patch) | |
tree | 111fbc1f54c1220748df067a8b4cd1d5004e6f79 | |
parent | f99b82c1ae6fc7bc927ad0f216579162574d4fbe (diff) | |
download | ranger-3dd1793a9f60b318c73e1a0d5eade6349ad322fa.tar.gz |
dirarg: improved
-rw-r--r-- | ranger/core/actions.py | 12 | ||||
-rw-r--r-- | ranger/ext/direction.py | 11 |
2 files changed, 10 insertions, 13 deletions
diff --git a/ranger/core/actions.py b/ranger/core/actions.py index 15d0d017..b320396a 100644 --- a/ranger/core/actions.py +++ b/ranger/core/actions.py @@ -547,19 +547,19 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware): cwd = self.env.cwd if not narg and not dirarg: selected = (f for f in self.env.get_selection() if f in cwd.files) - self.env.copy = set(selected) else: - direction = Direction(dirarg or {}) - offset = 0 - if not direction.vertical(): + if not dirarg and narg: direction = Direction(down=1) - offset = -1 + offset = 0 + else: + direction = Direction(dirarg) + offset = 1 pos, selected = direction.select( override=narg, lst=cwd.files, current=cwd.pointer, pagesize=self.env.termsize[0], offset=offset) - self.env.copy = set(selected) self.env.cwd.pointer = pos self.env.cwd.correct_pointer() + self.env.copy = set(selected) self.env.cut = False self.ui.browser.main_column.request_redraw() diff --git a/ranger/ext/direction.py b/ranger/ext/direction.py index cefd32bc..b9fbcac9 100644 --- a/ranger/ext/direction.py +++ b/ranger/ext/direction.py @@ -134,11 +134,8 @@ class Direction(dict): pos += current return int(max(min(pos, maximum + offset - 1), minimum)) - def select(self, lst, override, current, pagesize, offset=0): - destination = self.move(direction=self.down(), override=override, + def select(self, lst, override, current, pagesize, offset=1): + dest = self.move(direction=self.down(), override=override, current=current, pagesize=pagesize, minimum=0, maximum=len(lst)) - if destination > current: - destination += offset - return destination, lst[current:destination + 1] - destination -= offset - return destination, lst[destination:current + 1] + selection = lst[min(current, dest):max(current, dest) + offset] + return dest + offset - 1, selection |