summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--ranger/core/actions.py1
-rw-r--r--ranger/gui/widgets/statusbar.py6
2 files changed, 4 insertions, 3 deletions
diff --git a/ranger/core/actions.py b/ranger/core/actions.py
index 1fe99ada..8106a89b 100644
--- a/ranger/core/actions.py
+++ b/ranger/core/actions.py
@@ -122,6 +122,7 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 	def get_cumulative_size(self):
 		for f in self.env.get_selection() or ():
 			f.look_up_cumulative_size()
+		self.ui.status.request_redraw()
 		self.ui.redraw_main_column()
 
 	def redraw_window(self):
diff --git a/ranger/gui/widgets/statusbar.py b/ranger/gui/widgets/statusbar.py
index a7d3fc73..7948b201 100644
--- a/ranger/gui/widgets/statusbar.py
+++ b/ranger/gui/widgets/statusbar.py
@@ -236,9 +236,9 @@ class StatusBar(Widget):
 			if len(target.marked_items) == len(target.files):
 				right.add(human_readable(target.disk_usage, separator=''))
 			else:
-				right.add(human_readable(sum(f.size \
-					for f in target.marked_items \
-					if f.is_file), separator=''))
+				sumsize = sum(f.size for f in target.marked_items if not
+						f.is_directory or f._cumulative_size_calculated)
+				right.add(human_readable(sumsize, separator=''))
 			right.add("/" + str(len(target.marked_items)))
 		else:
 			right.add(human_readable(target.disk_usage, separator='') +