summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEgmont Koblinger <egmont@gmail.com>2014-12-01 13:27:26 +0100
committerEgmont Koblinger <egmont@gmail.com>2014-12-01 13:27:26 +0100
commit916964eb67e230f1aa9204623944745370eb771e (patch)
treed3940121203130b0a0d5804b9461bc1a0baa0dc0
parentfc9dcbba2e875e44e646287f8551a89297021a11 (diff)
downloadvte-916964eb67e230f1aa9204623944745370eb771e.tar.gz
emulation: Modify erase-in-line when cursor is beyond the last column
Don't move the cursor back to the last column. This intentially deviates from xterm because makes more sense and fixes utilities such as grep. https://bugzilla.gnome.org/show_bug.cgi?id=740789
-rw-r--r--src/vteseq.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/vteseq.c b/src/vteseq.c
index 34b940a8..5fc63580 100644
--- a/src/vteseq.c
+++ b/src/vteseq.c
@@ -1167,7 +1167,13 @@ _vte_sequence_handler_ce (VteTerminal *terminal, GValueArray *params)
{
VteRowData *rowdata;
- _vte_terminal_ensure_cursor_is_onscreen(terminal);
+ /* If we were to strictly emulate xterm, we'd ensure the cursor is onscreen.
+ * But due to https://bugzilla.gnome.org/show_bug.cgi?id=740789 we intentionally
+ * deviate and do instead what konsole does. This way emitting a \e[K doesn't
+ * influence the text flow, and serves as a perfect workaround against a new line
+ * getting painted with the active background color (except for a possible flicker).
+ */
+ /* _vte_terminal_ensure_cursor_is_onscreen(terminal); */
/* Get the data for the row which the cursor points to. */
rowdata = _vte_terminal_ensure_row(terminal);