redraw if we scroll on resize - st - Simple Terminal
       
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit edfbc9b432bc779ec9c41f7523be52b99edeec85
 (DIR) parent 638a30359d26c1f84a87f0f8df17df1765068029
 (HTM) Author: Devin J. Pohly <djpohly@djpohly.com>
       Date:   Mon, 25 Oct 2010 16:45:13 -0400
       
       redraw if we scroll on resize
       
       Diffstat:
         st.c                                |      10 ++++++----
       
       1 file changed, 6 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -170,7 +170,7 @@ static void tputtab(void);
        static void tputc(char);
        static void tputs(char*, int);
        static void treset(void);
       -static void tresize(int, int);
       +static int tresize(int, int);
        static void tscrollup(int, int);
        static void tscrolldown(int, int);
        static void tsetattr(int*, int);
       @@ -1202,7 +1202,7 @@ tputs(char *s, int len) {
                        tputc(*s++);
        }
        
       -void
       +int
        ttresize(int col, int row) {
                int i, x;
                int minrow = MIN(row, term.row);
       @@ -1210,7 +1210,7 @@ tresize(int col, int row) {
                int slide = term.c.y - row + 1;
        
                if(col < 1 || row < 1)
       -                return;
       +                return 0;
        
                /* free unneeded rows */
                i = 0;
       @@ -1256,6 +1256,7 @@ tresize(int col, int row) {
                tmoveto(term.c.x, term.c.y);
                /* reset scrolling region */
                tsetscroll(0, row-1);
       +        return (slide > 0);
        }
        
        void
       @@ -1650,7 +1651,8 @@ resize(XEvent *e) {
                row = (xw.h - 2*BORDER) / xw.ch;
                if(col == term.col && row == term.row)
                        return;
       -        tresize(col, row);
       +        if(tresize(col, row))
       +                draw(SCREEN_REDRAW);
                ttyresize(col, row);
                xresize(col, row);
        }