terminal: Update terminal->end whenever we write a character
We used to only update it on newline, which breaks when somebody moves
the cursor below terminal->end and writes stuff. Instead update it whenever
we write a character to the terminal.
https://bugs.freedesktop.org/show_bug.cgi?id=71935
diff --git a/clients/terminal.c b/clients/terminal.c
index 44f206b..e7dcd91 100644
--- a/clients/terminal.c
+++ b/clients/terminal.c
@@ -1855,13 +1855,6 @@
case '\v':
case '\f':
terminal->row++;
- if (terminal->row + terminal->start > terminal->end)
- terminal->end = terminal->row + terminal->start;
- if (terminal->end == terminal->buffer_height)
- terminal->log_size = terminal->buffer_height;
- else if (terminal->log_size < terminal->buffer_height)
- terminal->log_size = terminal->end;
-
if (terminal->row > terminal->margin_bottom) {
terminal->row = terminal->margin_bottom;
terminal_scroll(terminal, +1);
@@ -1965,6 +1958,13 @@
row[terminal->column] = utf8;
attr_row[terminal->column++] = terminal->curr_attr;
+ if (terminal->row + terminal->start + 1 > terminal->end)
+ terminal->end = terminal->row + terminal->start + 1;
+ if (terminal->end == terminal->buffer_height)
+ terminal->log_size = terminal->buffer_height;
+ else if (terminal->log_size < terminal->buffer_height)
+ terminal->log_size = terminal->end;
+
/* cursor jump for wide character. */
if (is_wide(utf8))
row[terminal->column++].ch = 0x200B; /* space glyph */