Skip to content

Commit d89c23e

Browse files
committed
Remove garbage left behind when rerendering the right side of the dialog
1 parent 7e3eb64 commit d89c23e

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

lib/reline/line_editor.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,8 @@ def add_dialog_proc(name, p, context = nil)
706706
bg_color = '46'
707707
end
708708
end
709-
str = padding_space_with_escape_sequences(Reline::Unicode.take_range(item, 0, dialog.width - @block_elem_width), dialog.width - @block_elem_width)
709+
str_width = dialog.width - (dialog.scrollbar_pos.nil? ? 0 : @block_elem_width)
710+
str = padding_space_with_escape_sequences(Reline::Unicode.take_range(item, 0, str_width), str_width)
710711
@output.write "\e[#{bg_color}m#{str}"
711712
if dialog.scrollbar_pos and dialog.scrollbar_pos != old_dialog.scrollbar_pos
712713
@output.write "\e[37m"
@@ -815,7 +816,7 @@ def add_dialog_proc(name, p, context = nil)
815816
if (old_dialog.column + old_dialog.width - old_dialog_scrollbar) > (dialog.column + dialog.width - dialog_scrollbar)
816817
# rerender right
817818
move_cursor_down(old_dialog.vertical_offset + y_diff)
818-
width = (old_dialog.column + old_dialog.width) - (dialog.column + dialog.width)
819+
width = (old_dialog.column + old_dialog.width - old_dialog_scrollbar) - (dialog.column + dialog.width - dialog_scrollbar)
819820
start = visual_start + old_dialog.vertical_offset
820821
line_num = old_dialog.contents.size
821822
line_num.times do |i|
@@ -826,7 +827,7 @@ def add_dialog_proc(name, p, context = nil)
826827
s = Reline::Unicode.take_range(visual_lines[start + i], old_dialog.column + dialog.width, width)
827828
s = padding_space_with_escape_sequences(s, dialog.width)
828829
end
829-
Reline::IOGate.move_cursor_column(dialog.column + dialog.width)
830+
Reline::IOGate.move_cursor_column(dialog.column + dialog.width - dialog_scrollbar)
830831
@output.write "\e[39m\e[49m#{s}\e[39m\e[49m"
831832
move_cursor_down(1) if i < (line_num - 1)
832833
end

0 commit comments

Comments
 (0)