summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--ranger/core/actions.py93
1 files changed, 48 insertions, 45 deletions
diff --git a/ranger/core/actions.py b/ranger/core/actions.py
index f936755f..c30c48a2 100644
--- a/ranger/core/actions.py
+++ b/ranger/core/actions.py
@@ -463,51 +463,54 @@ class Actions(  # pylint: disable=too-many-instance-attributes,too-many-public-m
             directory = os.path.join(*(['..'] * steps))
             self.thistab.enter_dir(directory)
             self.change_mode('normal')
-        if cwd and cwd.accessible and cwd.content_loaded:
-            if 'right' in direction:
-                mode = 0
-                if narg is not None:
-                    mode = narg
-                tfile = self.thisfile
-                selection = self.thistab.get_selection()
-                if not self.thistab.enter_dir(tfile) and selection:
-                    result = self.execute_file(selection, mode=mode)
-                    if result in (False, ASK_COMMAND):
-                        self.open_console('open_with ')
-            elif direction.vertical() and cwd.files:
-                newpos = direction.move(
-                    direction=direction.down(),
-                    override=narg,
-                    maximum=len(cwd),
-                    current=cwd.pointer,
-                    pagesize=self.ui.browser.hei)
-                cwd.move(to=newpos)
-                if self.mode == 'visual':
-                    try:
-                        startpos = cwd.index(self._visual_start)
-                    except ValueError:
-                        self._visual_start = None
-                        startpos = min(self._visual_start_pos, len(cwd))
-                    # The files between here and _visual_start_pos
-                    targets = set(cwd.files[min(startpos, newpos):(max(startpos, newpos) + 1)])
-                    # The selection before activating visual mode
-                    old = self._previous_selection
-                    # The current selection
-                    current = set(cwd.marked_items)
-
-                    # Set theory anyone?
-                    if not self._visual_reverse:
-                        for fobj in targets - current:
-                            cwd.mark_item(fobj, True)
-                        for fobj in current - old - targets:
-                            cwd.mark_item(fobj, False)
-                    else:
-                        for fobj in targets & current:
-                            cwd.mark_item(fobj, False)
-                        for fobj in old - current - targets:
-                            cwd.mark_item(fobj, True)
-                if self.ui.pager.visible:
-                    self.display_file()
+
+        if not cwd or not cwd.accessible or not cwd.content_loaded:
+            return
+
+        if 'right' in direction:
+            mode = 0
+            if narg is not None:
+                mode = narg
+            tfile = self.thisfile
+            selection = self.thistab.get_selection()
+            if not self.thistab.enter_dir(tfile) and selection:
+                result = self.execute_file(selection, mode=mode)
+                if result in (False, ASK_COMMAND):
+                    self.open_console('open_with ')
+        elif direction.vertical() and cwd.files:
+            newpos = direction.move(
+                direction=direction.down(),
+                override=narg,
+                maximum=len(cwd),
+                current=cwd.pointer,
+                pagesize=self.ui.browser.hei)
+            cwd.move(to=newpos)
+            if self.mode == 'visual':
+                try:
+                    startpos = cwd.index(self._visual_start)
+                except ValueError:
+                    self._visual_start = None
+                    startpos = min(self._visual_start_pos, len(cwd))
+                # The files between here and _visual_start_pos
+                targets = set(cwd.files[min(startpos, newpos):(max(startpos, newpos) + 1)])
+                # The selection before activating visual mode
+                old = self._previous_selection
+                # The current selection
+                current = set(cwd.marked_items)
+
+                # Set theory anyone?
+                if not self._visual_reverse:
+                    for fobj in targets - current:
+                        cwd.mark_item(fobj, True)
+                    for fobj in current - old - targets:
+                        cwd.mark_item(fobj, False)
+                else:
+                    for fobj in targets & current:
+                        cwd.mark_item(fobj, False)
+                    for fobj in old - current - targets:
+                        cwd.mark_item(fobj, True)
+            if self.ui.pager.visible:
+                self.display_file()
 
     def move_parent(self, n, narg=None):
         self.change_mode('normal')