diff --git a/kitty/boss.py b/kitty/boss.py index 881882ad7..4380c88f5 100644 --- a/kitty/boss.py +++ b/kitty/boss.py @@ -148,7 +148,7 @@ class Boss: w = self.window_id_map.get(window_id) if w is not None: if not self.child_monitor.resize_pty(window_id, *w.current_pty_size): - return 0.0 # re-add this timer + return 0.002 # re-add this timer def on_child_death(self, window_id): w = self.window_id_map.pop(window_id, None) diff --git a/kitty/window.py b/kitty/window.py index d9aa2ba3b..83256f209 100644 --- a/kitty/window.py +++ b/kitty/window.py @@ -80,15 +80,15 @@ class Window: return if self.needs_layout or new_geometry.xnum != self.screen.columns or new_geometry.ynum != self.screen.lines: boss = get_boss() - child_monitor = boss.child_monitor self.screen.resize(new_geometry.ynum, new_geometry.xnum) self.current_pty_size = ( self.screen.lines, self.screen.columns, max(0, new_geometry.right - new_geometry.left), max(0, new_geometry.bottom - new_geometry.top)) self.char_grid.resize(new_geometry) self.needs_layout = False - if not child_monitor.resize_pty(self.id, *self.current_pty_size): - boss.ui_timers.add(0, boss.retry_resize_pty, self.id) + timeout = boss.retry_resize_pty(self.id) + if timeout is not None: + boss.ui_timers.add(timeout, boss.retry_resize_pty, self.id) else: self.char_grid.update_position(new_geometry) self.geometry = new_geometry