update x_offset
calculation in Buffer::set_string_truncated (#3839)
when `truncate_start` is `true`, the `x_offset` is now properly updated according to the width of the content or the truncated length.
This commit is contained in:
parent
94346356e7
commit
7483c76222
1 changed files with 4 additions and 3 deletions
|
@ -360,14 +360,14 @@ impl Buffer {
|
|||
let mut start_index = self.index_of(x, y);
|
||||
let mut index = self.index_of(max_offset as u16, y);
|
||||
|
||||
let total_width = string.width();
|
||||
let truncated = total_width > width;
|
||||
let content_width = string.width();
|
||||
let truncated = content_width > width;
|
||||
if ellipsis && truncated {
|
||||
self.content[start_index].set_symbol("…");
|
||||
start_index += 1;
|
||||
}
|
||||
if !truncated {
|
||||
index -= width - total_width;
|
||||
index -= width - content_width;
|
||||
}
|
||||
for (byte_offset, s) in graphemes.rev() {
|
||||
let width = s.width();
|
||||
|
@ -384,6 +384,7 @@ impl Buffer {
|
|||
self.content[i].reset();
|
||||
}
|
||||
index -= width;
|
||||
x_offset += width;
|
||||
}
|
||||
}
|
||||
(x_offset as u16, y)
|
||||
|
|
Loading…
Add table
Reference in a new issue