move code into new xresize func, add early exit to resize

This commit is contained in:
Devin J. Pohly 2010-10-25 15:10:41 -04:00
parent 722688d989
commit 1243581772
1 changed files with 14 additions and 8 deletions

22
st.c
View File

@ -190,6 +190,7 @@ static void xdrawcursor(void);
static void xinit(void); static void xinit(void);
static void xloadcols(void); static void xloadcols(void);
static void xseturgency(int); static void xseturgency(int);
static void xresize(int, int);
static void expose(XEvent *); static void expose(XEvent *);
static void visibility(XEvent *); static void visibility(XEvent *);
@ -1257,6 +1258,14 @@ tresize(int col, int row) {
tsetscroll(0, row-1); tsetscroll(0, row-1);
} }
void
xresize(int col, int row) {
xw.bufw = MAX(1, col * xw.cw);
xw.bufh = MAX(1, row * xw.ch);
XFreePixmap(xw.dis, xw.buf);
xw.buf = XCreatePixmap(xw.dis, xw.win, xw.bufw, xw.bufh, XDefaultDepth(xw.dis, xw.scr));
}
void void
xloadcols(void) { xloadcols(void) {
int i, r, g, b; int i, r, g, b;
@ -1615,16 +1624,13 @@ resize(XEvent *e) {
xw.w = e->xconfigure.width; xw.w = e->xconfigure.width;
xw.h = e->xconfigure.height; xw.h = e->xconfigure.height;
xw.bufw = xw.w - 2*BORDER; col = (xw.w - 2*BORDER) / xw.cw;
xw.bufh = xw.h - 2*BORDER; row = (xw.h - 2*BORDER) / xw.ch;
col = xw.bufw / xw.cw; if(col == term.col && row == term.row)
row = xw.bufh / xw.ch; return;
tresize(col, row); tresize(col, row);
ttyresize(col, row); ttyresize(col, row);
xw.bufh = MAX(1, xw.bufh); xresize(col, row);
xw.bufw = MAX(1, xw.bufw);
XFreePixmap(xw.dis, xw.buf);
xw.buf = XCreatePixmap(xw.dis, xw.win, xw.bufw, xw.bufh, XDefaultDepth(xw.dis, xw.scr));
} }
void void