diff options
-rw-r--r-- | ranger/fsobject/directory.py | 4 | ||||
-rw-r--r-- | ranger/fsobject/loader.py | 16 |
2 files changed, 12 insertions, 8 deletions
diff --git a/ranger/fsobject/directory.py b/ranger/fsobject/directory.py index 99a4bc61..44c4cf96 100644 --- a/ranger/fsobject/directory.py +++ b/ranger/fsobject/directory.py @@ -128,10 +128,10 @@ class Directory(SuperClass, SettingsAware): files = [] for name in self.filenames: if isdir(name): - item = Directory(name) + item = self.fm.env.get_directory(name) else: item = File(name) - item.load() + item.load_if_outdated() files.append(item) yield diff --git a/ranger/fsobject/loader.py b/ranger/fsobject/loader.py index 00992651..483595c3 100644 --- a/ranger/fsobject/loader.py +++ b/ranger/fsobject/loader.py @@ -37,12 +37,16 @@ class Loader(object): self.queue.appendleft(obj) def work(self): - if not self.queue: - return - - item = self.queue[0] - if item.load_generator is None: - self.queue.popleft() + while True: + # get the first item with a proper load_generator + try: + item = self.queue[0] + if item.load_generator is None: + self.queue.popleft() + else: + break + except IndexError: + return self.rotate() self.tick += 1 |