From d8545e5c4371c0b4206cca898ceff9e8a8d217bf Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 23 Jan 2017 18:41:41 +0530 Subject: [PATCH] Report the window width and height for TIOCSWINSZ Matches behavior of xterm --- kitty/child.py | 4 ++-- kitty/window.py | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) 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: