=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/tty.c,v retrieving revision 1.333 retrieving revision 1.334 diff -u -r1.333 -r1.334 --- src/usr.bin/tmux/tty.c 2019/11/14 07:56:32 1.333 +++ src/usr.bin/tmux/tty.c 2019/11/28 09:05:34 1.334 @@ -1,4 +1,4 @@ -/* $OpenBSD: tty.c,v 1.333 2019/11/14 07:56:32 nicm Exp $ */ +/* $OpenBSD: tty.c,v 1.334 2019/11/28 09:05:34 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -127,29 +127,40 @@ { struct client *c = tty->client; struct winsize ws; - u_int sx, sy; + u_int sx, sy, xpixel, ypixel; if (ioctl(tty->fd, TIOCGWINSZ, &ws) != -1) { sx = ws.ws_col; - if (sx == 0) + if (sx == 0) { sx = 80; + xpixel = 0; + } else + xpixel = ws.ws_xpixel / sx; sy = ws.ws_row; - if (sy == 0) + if (sy == 0) { sy = 24; + ypixel = 0; + } else + ypixel = ws.ws_ypixel / sy; } else { sx = 80; sy = 24; + xpixel = 0; + ypixel = 0; } - log_debug("%s: %s now %ux%u", __func__, c->name, sx, sy); - tty_set_size(tty, sx, sy); + log_debug("%s: %s now %ux%u (%ux%u)", __func__, c->name, sx, sy, + xpixel, ypixel); + tty_set_size(tty, sx, sy, xpixel, ypixel); tty_invalidate(tty); } void -tty_set_size(struct tty *tty, u_int sx, u_int sy) +tty_set_size(struct tty *tty, u_int sx, u_int sy, u_int xpixel, u_int ypixel) { tty->sx = sx; tty->sy = sy; + tty->xpixel = xpixel; + tty->ypixel = ypixel; } static void