Fix zerowidth characters in the last column
This commit fixes the issue that when attempting to write zerowidth characters into the last column, it is written in the second to last column instead. Fixes #4227. Co-authored-by: Christian Duerr <contact@christianduerr.com>
This commit is contained in:
parent
e523180471
commit
256be5b95b
|
@ -74,6 +74,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||
- Crash when writing to the clipboard fails on Wayland
|
||||
- Crash with large negative `font.offset.x/y`
|
||||
- Visual bell getting stuck on the first frame
|
||||
- Zerowidth characters in the last column of the line
|
||||
|
||||
## 0.5.0
|
||||
|
||||
|
|
|
@ -1480,11 +1480,18 @@ impl<T: EventListener> Handler for Term<T> {
|
|||
|
||||
// Handle zero-width characters.
|
||||
if width == 0 {
|
||||
let mut col = self.grid.cursor.point.col.0.saturating_sub(1);
|
||||
// Get previous column.
|
||||
let mut col = self.grid.cursor.point.col.0;
|
||||
if !self.grid.cursor.input_needs_wrap {
|
||||
col = col.saturating_sub(1);
|
||||
}
|
||||
|
||||
// Put zerowidth characters over first fullwidth character cell.
|
||||
let line = self.grid.cursor.point.line;
|
||||
if self.grid[line][Column(col)].flags.contains(Flags::WIDE_CHAR_SPACER) {
|
||||
col = col.saturating_sub(1);
|
||||
}
|
||||
|
||||
self.grid[line][Column(col)].push_zerowidth(c);
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue