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):