diff --git a/kitty/child.py b/kitty/child.py index b24135e25..4e115fa83 100644 --- a/kitty/child.py +++ b/kitty/child.py @@ -75,9 +75,9 @@ class Child: t.start() return pid - def resize_pty(self, w, h): + def resize_pty(self, w, h, ww, wh): if self.child_fd is not None: - fcntl.ioctl(self.child_fd, termios.TIOCSWINSZ, struct.pack('4H', h, w, 0, 0)) + fcntl.ioctl(self.child_fd, termios.TIOCSWINSZ, struct.pack('4H', h, w, ww, wh)) def hangup(self): if self.pid is not None: diff --git a/kitty/window.py b/kitty/window.py index 750642f14..e04be198e 100644 --- a/kitty/window.py +++ b/kitty/window.py @@ -65,7 +65,8 @@ class Window: def set_geometry(self, new_geometry): if self.needs_layout or new_geometry.xnum != self.screen.columns or new_geometry.ynum != self.screen.lines: self.screen.resize(new_geometry.ynum, new_geometry.xnum) - self.child.resize_pty(self.screen.columns, self.screen.lines) + self.child.resize_pty(self.screen.columns, self.screen.lines, + 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 else: