summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--ranger/ext/vcs/vcs.py3
-rw-r--r--ranger/gui/ui.py8
2 files changed, 6 insertions, 5 deletions
diff --git a/ranger/ext/vcs/vcs.py b/ranger/ext/vcs/vcs.py
index dd74ff82..8516bd71 100644
--- a/ranger/ext/vcs/vcs.py
+++ b/ranger/ext/vcs/vcs.py
@@ -393,7 +393,8 @@ class VcsThread(threading.Thread):
             if redraw:
                 redraw = False
                 for column in self.ui.browser.columns:
-                    column.need_redraw = True
+                    if column.target and column.target.is_directory:
+                        column.need_redraw = True
                 self.ui.status.need_redraw = True
                 self.ui.redraw()
             roots.clear()
diff --git a/ranger/gui/ui.py b/ranger/gui/ui.py
index f1e1ebbb..49c99777 100644
--- a/ranger/gui/ui.py
+++ b/ranger/gui/ui.py
@@ -42,6 +42,7 @@ class UI(DisplayableContainer):
         self.keybuffer = KeyBuffer()
         self.keymaps = KeyMaps(self.keybuffer)
         self.redrawlock = threading.Event()
+        self.redrawlock.set()
 
         if fm is not None:
             self.fm = fm
@@ -257,9 +258,8 @@ class UI(DisplayableContainer):
 
     def redraw(self):
         """Redraw all widgets"""
-        if self.redrawlock.is_set():
-            return
-        self.redrawlock.set()
+        self.redrawlock.wait()
+        self.redrawlock.clear()
         self.poke()
 
         # determine which widgets are shown
@@ -274,7 +274,7 @@ class UI(DisplayableContainer):
 
         self.draw()
         self.finalize()
-        self.redrawlock.clear()
+        self.redrawlock.set()
 
     def redraw_window(self):
         """Redraw the window. This only calls self.win.redrawwin()."""