mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-21 16:05:02 +02:00
Get rid of update_screen
No longer needed.
This commit is contained in:
@@ -107,7 +107,7 @@ class Boss:
|
||||
self.ui_timers = Timers()
|
||||
self.child_monitor = ChildMonitor(
|
||||
opts.repaint_delay / 1000.0, glfw_window.window_id(),
|
||||
self.on_child_death, self.update_screen, self.ui_timers, self.render,
|
||||
self.on_child_death, self.ui_timers, self.render,
|
||||
DumpCommands(args) if args.dump_commands or args.dump_bytes else None)
|
||||
set_boss(self)
|
||||
self.current_font_size = opts.font_size
|
||||
@@ -163,11 +163,6 @@ class Boss:
|
||||
if w is not None:
|
||||
w.on_child_death()
|
||||
|
||||
def update_screen(self, window_id):
|
||||
w = self.window_id_map.get(window_id)
|
||||
if w is not None:
|
||||
w.update_screen()
|
||||
|
||||
def close_window(self, window=None):
|
||||
if window is None:
|
||||
window = self.active_window
|
||||
|
||||
@@ -231,7 +231,6 @@ class CharGrid:
|
||||
self.update_cell_data()
|
||||
|
||||
def update_cell_data(self, force_full_refresh=False):
|
||||
is_dirty = self.screen.is_dirty()
|
||||
cursor_changed, history_line_added_count = self.screen.update_cell_data(
|
||||
addressof(self.main_sprite_map), force_full_refresh)
|
||||
if self.scrolled_by:
|
||||
@@ -240,8 +239,7 @@ class CharGrid:
|
||||
addressof(self.main_sprite_map), self.scrolled_by, addressof(self.scroll_sprite_map))
|
||||
|
||||
data = self.scroll_sprite_map if self.scrolled_by else self.main_sprite_map
|
||||
if is_dirty:
|
||||
self.current_selection.clear()
|
||||
self.current_selection.clear()
|
||||
memmove(self.render_buf, data, sizeof(type(data)))
|
||||
self.render_data = self.screen_geometry
|
||||
self.render_buf_is_dirty = True
|
||||
@@ -365,9 +363,9 @@ class CharGrid:
|
||||
return s.text(self.screen.linebuf, self.screen.historybuf)
|
||||
|
||||
def prepare_for_render(self, cell_program):
|
||||
if self.screen.is_dirty():
|
||||
self.update_cell_data()
|
||||
sg = self.render_data
|
||||
if sg is None:
|
||||
return
|
||||
if self.vao_id is None:
|
||||
self.vao_id = cell_program.create_sprite_map()
|
||||
start, end = sel = self.current_selection.limits(self.scrolled_by, self.screen.lines, self.screen.columns)
|
||||
|
||||
@@ -111,12 +111,12 @@ self_pipe(int fds[2]) {
|
||||
static PyObject *
|
||||
new(PyTypeObject *type, PyObject *args, PyObject UNUSED *kwds) {
|
||||
ChildMonitor *self;
|
||||
PyObject *dump_callback, *death_notify, *update_screen, *timers, *wid, *render_func;
|
||||
PyObject *dump_callback, *death_notify, *timers, *wid, *render_func;
|
||||
int ret;
|
||||
double repaint_delay;
|
||||
|
||||
if (created) { PyErr_SetString(PyExc_RuntimeError, "Can have only a single ChildMonitor instance"); return NULL; }
|
||||
if (!PyArg_ParseTuple(args, "dOOOOOO", &repaint_delay, &wid, &death_notify, &update_screen, &timers, &render_func, &dump_callback)) return NULL;
|
||||
if (!PyArg_ParseTuple(args, "dOOOOO", &repaint_delay, &wid, &death_notify, &timers, &render_func, &dump_callback)) return NULL;
|
||||
glfw_window_id = PyLong_AsVoidPtr(wid);
|
||||
created = true;
|
||||
if ((ret = pthread_mutex_init(&children_lock, NULL)) != 0) {
|
||||
@@ -132,7 +132,6 @@ new(PyTypeObject *type, PyObject *args, PyObject UNUSED *kwds) {
|
||||
self = (ChildMonitor *)type->tp_alloc(type, 0);
|
||||
if (self == NULL) return PyErr_NoMemory();
|
||||
self->death_notify = death_notify; Py_INCREF(death_notify);
|
||||
self->update_screen = update_screen; Py_INCREF(self->update_screen);
|
||||
self->render_func = render_func; Py_INCREF(self->render_func);
|
||||
self->timers = (Timers*)timers; Py_INCREF(timers);
|
||||
if (dump_callback != Py_None) {
|
||||
@@ -152,7 +151,6 @@ dealloc(ChildMonitor* self) {
|
||||
pthread_mutex_destroy(&children_lock);
|
||||
Py_CLEAR(self->dump_callback);
|
||||
Py_CLEAR(self->death_notify);
|
||||
Py_CLEAR(self->update_screen);
|
||||
Py_CLEAR(self->timers);
|
||||
Py_CLEAR(self->render_func);
|
||||
Py_TYPE(self)->tp_free((PyObject*)self);
|
||||
@@ -266,7 +264,7 @@ shutdown(ChildMonitor *self) {
|
||||
}
|
||||
|
||||
static inline bool
|
||||
do_parse(ChildMonitor *self, Screen *screen, unsigned long child_id) {
|
||||
do_parse(ChildMonitor *self, Screen *screen) {
|
||||
bool updated = false;
|
||||
screen_mutex(lock, read);
|
||||
if (screen->read_buf_sz) {
|
||||
@@ -277,9 +275,7 @@ do_parse(ChildMonitor *self, Screen *screen, unsigned long child_id) {
|
||||
}
|
||||
screen_mutex(unlock, read);
|
||||
if (LIKELY(updated)) {
|
||||
PyObject *t = PyObject_CallFunction(self->update_screen, "k", child_id);
|
||||
if (t == NULL) PyErr_Print();
|
||||
else Py_DECREF(t);
|
||||
glfwPostEmptyEvent();
|
||||
}
|
||||
return updated;
|
||||
}
|
||||
@@ -326,7 +322,7 @@ parse_input(ChildMonitor *self) {
|
||||
|
||||
for (size_t i = 0; i < count; i++) {
|
||||
if (!scratch[i].needs_removal) {
|
||||
do_parse(self, scratch[i].screen, scratch[i].id);
|
||||
do_parse(self, scratch[i].screen);
|
||||
}
|
||||
DECREF_CHILD(scratch[i]);
|
||||
}
|
||||
|
||||
@@ -133,10 +133,6 @@ class Window:
|
||||
def use_utf8(self, on):
|
||||
get_boss().child_monitor.set_iutf8(self.window_id, on)
|
||||
|
||||
def update_screen(self):
|
||||
self.char_grid.update_cell_data()
|
||||
glfw_post_empty_event()
|
||||
|
||||
def focus_changed(self, focused):
|
||||
if focused:
|
||||
if self.screen.focus_tracking_enabled:
|
||||
|
||||
Reference in New Issue
Block a user