diff --git a/kittens/diff/main.py b/kittens/diff/main.py index 293bb3e92..4da511196 100644 --- a/kittens/diff/main.py +++ b/kittens/diff/main.py @@ -166,14 +166,14 @@ class DiffHandler(Handler): text = line.text if line.image_data is not None: image_involved = True - self.write('\r' + text + '\x1b[0m') + self.write('\r\x1b[K' + text + '\x1b[0m') if i < num - 1: self.write('\n') if image_involved: self.place_images() - self.cmd.set_cursor_position(0, self.num_lines - 1) def place_images(self): + self.cmd.clear_images_on_screen() offset = self.scroll_pos limit = len(self.diff_lines) in_image = False @@ -204,7 +204,6 @@ class DiffHandler(Handler): if visible_frac > 0: height = int(visible_frac * placement.image.height) top = placement.image.height - height - self.image_manager.hide_image(placement.image.image_id) self.image_manager.show_image(placement.image.image_id, xpos, row, src_rect=( 0, top, placement.image.width, height)) @@ -214,7 +213,8 @@ class DiffHandler(Handler): self.cmd.clear_screen() self.write(_('Calculating diff, please wait...')) return - self.cmd.clear_screen() + self.cmd.clear_images_on_screen() + self.cmd.set_cursor_position(0, 0) self.draw_lines(self.num_lines) self.draw_status_line() diff --git a/kittens/diff/render.py b/kittens/diff/render.py index 86997a417..cb7420af8 100644 --- a/kittens/diff/render.py +++ b/kittens/diff/render.py @@ -400,7 +400,7 @@ def render_image(path, is_left, available_cols, margin_size, image_manager): lnum += 1 try: - image_id, width, height = image_manager.send_image(path, available_cols - margin_size, screen_size().rows - 1) + image_id, width, height = image_manager.send_image(path, available_cols - margin_size, screen_size().rows - 2) except Exception as e: yield from yield_split(_('Failed to render image, with error:')) yield from yield_split(' '.join(str(e).splitlines()))