diff options
Diffstat (limited to 'ranger/gui/widgets/pager.py')
-rw-r--r-- | ranger/gui/widgets/pager.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/ranger/gui/widgets/pager.py b/ranger/gui/widgets/pager.py index 8bfdf42d..de73ddc2 100644 --- a/ranger/gui/widgets/pager.py +++ b/ranger/gui/widgets/pager.py @@ -30,6 +30,7 @@ class Pager(Widget): self.markup = None self.lines = [] self.image = None + self.image_drawn = False def open(self): self.scroll_begin = 0 @@ -38,10 +39,11 @@ class Pager(Widget): self.startx = 0 self.need_redraw = True - def clear_image(self): - if self.need_clear_image: + def clear_image(self, force=False): + if force or self.need_clear_image: img_display.clear(self.x, self.y, self.wid, self.hei) self.need_clear_image = False + self.image_drawn = False def close(self): if self.image: @@ -50,6 +52,10 @@ class Pager(Widget): if self.source and self.source_is_stream: self.source.close() + def destroy(self): + if self.image_drawn: + img_display.clear(self.x, self.y, self.wid, self.hei) + def finalize(self): self.fm.ui.win.move(self.y, self.x) @@ -65,8 +71,10 @@ class Pager(Widget): self.old_startx != self.startx: self.old_startx = self.startx self.old_scroll_begin = self.scroll_begin + self.need_redraw = True if self.need_redraw: + self.win.erase() self.need_redraw_image = True self.clear_image() @@ -91,6 +99,7 @@ class Pager(Widget): descr="loading preview image", silent=True, kill_on_pause=True) self.fm.loader.add(cmd) + self.image_drawn = True except img_display.ImgDisplayUnsupportedException: self.fm.settings.preview_images = False except Exception as e: |