[vte] emulation: Modify erase-in-line when cursor is beyond the last column



commit 916964eb67e230f1aa9204623944745370eb771e
Author: Egmont Koblinger <egmont gmail com>
Date:   Mon Dec 1 13:27:26 2014 +0100

    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

 src/vteseq.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/src/vteseq.c b/src/vteseq.c
index 34b940a..5fc6358 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);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]