move code into new xresize func, add early exit to resize - st - Simple Terminal
       
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 12435817723b44189bd412937403c401e5bbc136
 (DIR) parent 722688d989bae9ce5e71507be5656c9b78ae7834
 (HTM) Author: Devin J. Pohly <djpohly@djpohly.com>
       Date:   Mon, 25 Oct 2010 15:10:41 -0400
       
       move code into new xresize func, add early exit to resize
       
       Diffstat:
         st.c                                |      22 ++++++++++++++--------
       
       1 file changed, 14 insertions(+), 8 deletions(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -190,6 +190,7 @@ static void xdrawcursor(void);
        static void xinit(void);
        static void xloadcols(void);
        static void xseturgency(int);
       +static void xresize(int, int);
        
        static void expose(XEvent *);
        static void visibility(XEvent *);
       @@ -1258,6 +1259,14 @@ tresize(int col, int row) {
        }
        
        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
        xloadcols(void) {
                int i, r, g, b;
                XColor color;
       @@ -1615,16 +1624,13 @@ resize(XEvent *e) {
                
                xw.w = e->xconfigure.width;
                xw.h = e->xconfigure.height;
       -        xw.bufw = xw.w - 2*BORDER;
       -        xw.bufh = xw.h - 2*BORDER;
       -        col = xw.bufw / xw.cw;
       -        row = xw.bufh / xw.ch;
       +        col = (xw.w - 2*BORDER) / xw.cw;
       +        row = (xw.h - 2*BORDER) / xw.ch;
       +        if(col == term.col && row == term.row)
       +                return;
                tresize(col, row);
                ttyresize(col, row);
       -        xw.bufh = MAX(1, xw.bufh);
       -        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));
       +        xresize(col, row);
        }
        
        void