Cleaning up the fixed window size and the resizing of clients. - st - Simple Terminal
       
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit b1d383a0a344e35dad1064e129f70d52bddfd7b2
 (DIR) parent e02d72441ab6c1fba649ca65824b2d5dbb9db0f4
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Tue,  4 Sep 2012 22:44:33 +0200
       
       Cleaning up the fixed window size and the resizing of clients.
       
       Diffstat:
         st.c                                |      14 ++++++++++----
       
       1 file changed, 10 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -841,6 +841,8 @@ ttyresize(int x, int y) {
        
                w.ws_row = term.row;
                w.ws_col = term.col;
       +        w.ws_xpixel = xw.w;
       +        w.ws_ypixel = xw.h;
                w.ws_xpixel = w.ws_ypixel = 0;
                if(ioctl(cmdfd, TIOCSWINSZ, &w) < 0)
                        fprintf(stderr, "Couldn't set window size: %s\n", SERRNO);
       @@ -1910,12 +1912,15 @@ xinit(void) {
                                xw.fx = sw + xw.fx - xw.fw - 1;
                        if(xw.fy < 0)
                                xw.fy = sh + xw.fy - xw.fh - 1;
       +
       +                xw.h = xw.fh;
       +                xw.w = xw.fw;
                } else {
                        /* window - default size */
                        xw.h = 2*BORDER + term.row * xw.ch;
                        xw.w = 2*BORDER + term.col * xw.cw;
       -                xw.fw = xw.w;
       -                xw.fh = xw.h;
       +                xw.fx = 0;
       +                xw.fy = 0;
                }
        
                /* font */
       @@ -1940,7 +1945,7 @@ xinit(void) {
        
                parent = opt_embed ? strtol(opt_embed, NULL, 0) : XRootWindow(xw.dpy, xw.scr);
                xw.win = XCreateWindow(xw.dpy, parent, xw.fx, xw.fy,
       -                        xw.fw, xw.fh, 0, XDefaultDepth(xw.dpy, xw.scr), InputOutput,
       +                        xw.w, xw.h, 0, XDefaultDepth(xw.dpy, xw.scr), InputOutput,
                                XDefaultVisual(xw.dpy, xw.scr),
                                CWBackPixel | CWBorderPixel | CWBitGravity | CWEventMask
                                | CWColormap,
       @@ -2254,8 +2259,8 @@ resize(XEvent *e) {
                        return;
                if(tresize(col, row))
                        draw();
       -        ttyresize(col, row);
                xresize(col, row);
       +        ttyresize(col, row);
        }
        
        bool
       @@ -2310,6 +2315,7 @@ main(int argc, char *argv[]) {
                unsigned int wr, hr;
        
                xw.fw = xw.fh = xw.fx = xw.fy = 0;
       +        xw.isfixed = False;
        
                for(i = 1; i < argc; i++) {
                        switch(argv[i][0] != '-' || argv[i][2] ? -1 : argv[i][1]) {