Fix passing @text to other programs such as when viewing the scrollback buffer not working correctly if kitty is itself scrolled up. Fixes #509

This commit is contained in:
Kovid Goyal 2018-05-01 07:36:40 +05:30
parent 166c7bf0e6
commit aa93c3fb66
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 12 additions and 2 deletions

View File

@ -38,6 +38,8 @@ version 0.9.1 [future]
- When rendering a private use unicode codepoint and a space as a two cell ligature, set the foreground colors of the space cell to match the colors of the first cell. Works around applications like powerline that use different colors for the two cells.
- Fix passing @text to other programs such as when viewing the scrollback buffer not working correctly if kitty is itself scrolled up.
version 0.9.0 [2018-04-15]
------------------------------

View File

@ -1465,6 +1465,11 @@ as_text(Screen *self, PyObject *args) {
as_text_generic(args, self, visual_line_, self->lines, self->columns, callback, as_ansi);
}
static PyObject*
as_text_non_visual(Screen *self, PyObject *args) {
as_text_generic(args, self, range_line_, self->lines, self->columns, callback, as_ansi);
}
static PyObject*
refresh_sprite_positions(Screen *self, PyObject *a UNUSED) {
self->is_dirty = true;
@ -1968,6 +1973,7 @@ static PyMethodDef methods[] = {
MND(cursor_forward, METH_VARARGS)
{"index", (PyCFunction)xxx_index, METH_VARARGS, ""},
MND(as_text, METH_VARARGS)
MND(as_text_non_visual, METH_VARARGS)
MND(refresh_sprite_positions, METH_NOARGS)
MND(tab, METH_NOARGS)
MND(backspace, METH_NOARGS)

View File

@ -322,8 +322,10 @@ class Window:
def as_text(self, as_ansi=False, add_history=False):
lines = []
self.screen.as_text(lines.append, as_ansi)
if add_history and not self.screen.is_using_alternate_linebuf():
add_history = add_history and not self.screen.is_using_alternate_linebuf()
f = self.screen.as_text_non_visual if add_history else self.screen.as_text
f(lines.append, as_ansi)
if add_history:
h = []
self.screen.historybuf.as_text(h.append, as_ansi)
lines = h + lines