Handle remainder whitespace for filler segments

When more than one filler segment is specified it may sometimes be
a remainder when calculating the amount of whitespace. divmod() is used
to retrieve the remainder, which is added as whitespace to the first
filler segment.
This commit is contained in:
Kim Silkebækken 2012-11-17 12:35:38 +01:00
parent 90763f1fec
commit 08695540da

View File

@ -115,9 +115,12 @@ class Powerline:
# Distribute the remaining space on the filler segments # Distribute the remaining space on the filler segments
segments_fillers = [segment for segment in self.segments if segment.filler is True] segments_fillers = [segment for segment in self.segments if segment.filler is True]
if segments_fillers: if segments_fillers:
segments_fillers_contents = ' ' * int((width - len(rendered['raw'])) / len(segments_fillers)) segments_fillers_len, segments_fillers_remainder = divmod((width - len(rendered['raw'])), len(segments_fillers))
segments_fillers_contents = ' ' * segments_fillers_len
for segment in segments_fillers: for segment in segments_fillers:
segment.contents = segments_fillers_contents segment.contents = segments_fillers_contents
# Add remainder whitespace to the first filler segment
segments_fillers[0].contents += ' ' * segments_fillers_remainder
# Do a final render now that we have handled the cropping and padding # Do a final render now that we have handled the cropping and padding
rendered = render_segments(self.segments, render_raw=False) rendered = render_segments(self.segments, render_raw=False)