Problem with setting the cursor position on the right screen edge when drawing has been fixed.

This commit is contained in:
Jørn Gustav Larsen 2024-03-25 13:05:17 +01:00
parent 64fbf35eaf
commit 56d31ac22b

View File

@ -844,10 +844,18 @@ void ScreenInteractive::Draw(Component component) {
const int dx = dimx_ - 1 - cursor_.x + int(dimx_ != terminal.dimx);
const int dy = dimy_ - 1 - cursor_.y;
set_cursor_position = "\x1B[" + std::to_string(dy) + "A" + //
"\x1B[" + std::to_string(dx) + "D";
reset_cursor_position = "\x1B[" + std::to_string(dy) + "B" + //
"\x1B[" + std::to_string(dx) + "C";
set_cursor_position.clear();
reset_cursor_position.clear();
if (dx != 0) {
set_cursor_position += "\x1B[" + std::to_string(dx) + "D";
reset_cursor_position += "\x1B[" + std::to_string(dx) + "C";
}
if (dy != 0) {
set_cursor_position += "\x1B[" + std::to_string(dy) + "A";
reset_cursor_position += "\x1B[" + std::to_string(dy) + "B";
}
if (cursor_.shape == Cursor::Hidden) {
set_cursor_position += "\033[?25l";