From 7afbfb834936da2428d082babb3efe1c9f88fd66 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 2 Dec 2016 14:35:38 +0530 Subject: [PATCH] Reset scroll when toggling screen buffers --- kitty/screen.c | 2 ++ kitty/window.py | 3 +++ 2 files changed, 5 insertions(+) diff --git a/kitty/screen.c b/kitty/screen.c index db449331c..d141fca36 100644 --- a/kitty/screen.c +++ b/kitty/screen.c @@ -331,6 +331,8 @@ void screen_toggle_screen_buffer(Screen *self) { self->linebuf = self->main_linebuf; self->tabstops = self->main_tabstops; } + PyObject_CallMethod(self->callbacks, "buf_toggled", "O", self->linebuf == self->main_linebuf ? Py_True : Py_False); + if (PyErr_Occurred()) { PyErr_Print(); PyErr_Clear(); } screen_restore_cursor(self); tracker_update_screen(self->change_tracker); } diff --git a/kitty/window.py b/kitty/window.py index d679428e5..23474fb0a 100644 --- a/kitty/window.py +++ b/kitty/window.py @@ -227,6 +227,9 @@ class Window: k = key_map[GLFW_KEY_UP if upwards else GLFW_KEY_DOWN] self.write_to_child(k * abs(s)) + def buf_toggled(self, is_main_linebuf): + self.char_grid.scroll('full', False) + # actions {{{ def paste(self, text):