Move window-manipulating functions into x.c - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit a8314643b1aeaa2187dad71dc5748aaac1760c1b
 (DIR) parent a09138afa57adb4b76dba8ca72dc7ee2642a5c8d
 (HTM) Author: Devin J. Pohly <djpohly@gmail.com>
       Date:   Tue, 10 Oct 2017 12:46:53 -0500
       
       Move window-manipulating functions into x.c
       
       xresize is now internal to x.c
       
       Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
       
       Diffstat:
         M st.c                                |      36 -------------------------------
         M st.h                                |       9 +--------
         M win.h                               |       1 -
         M x.c                                 |      45 ++++++++++++++++++++++++++++++-
       
       4 files changed, 45 insertions(+), 46 deletions(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -165,7 +165,6 @@ static void tnewline(int);
        static void tputtab(int);
        static void tputc(Rune);
        static void treset(void);
       -static void tresize(int, int);
        static void tscrollup(int, int);
        static void tscrolldown(int, int);
        static void tsetattr(int *, int);
       @@ -420,24 +419,6 @@ selinit(void)
        }
        
        int
       -x2col(int x)
       -{
       -        x -= borderpx;
       -        x /= win.cw;
       -
       -        return LIMIT(x, 0, term.col-1);
       -}
       -
       -int
       -y2row(int y)
       -{
       -        y -= borderpx;
       -        y /= win.ch;
       -
       -        return LIMIT(y, 0, term.row-1);
       -}
       -
       -int
        tlinelen(int y)
        {
                int i = term.col;
       @@ -2620,20 +2601,3 @@ kmap(KeySym k, uint state)
        
                return NULL;
        }
       -
       -void
       -cresize(int width, int height)
       -{
       -        int col, row;
       -
       -        if (width != 0)
       -                win.w = width;
       -        if (height != 0)
       -                win.h = height;
       -
       -        col = (win.w - 2 * borderpx) / win.cw;
       -        row = (win.h - 2 * borderpx) / win.ch;
       -
       -        tresize(col, row);
       -        xresize(col, row);
       -}
 (DIR) diff --git a/st.h b/st.h
       @@ -80,11 +80,6 @@ enum selection_snap {
                SNAP_LINE = 2
        };
        
       -enum window_state {
       -        WIN_VISIBLE = 1,
       -        WIN_FOCUSED = 2
       -};
       -
        typedef unsigned char uchar;
        typedef unsigned int uint;
        typedef unsigned long ulong;
       @@ -186,6 +181,7 @@ void redraw(void);
        
        int tattrset(int);
        void tnew(int, int);
       +void tresize(int, int);
        void tsetdirt(int, int);
        void tsetdirtattr(int);
        int match(uint, uint);
       @@ -198,15 +194,12 @@ void ttywrite(const char *, size_t);
        void resettitle(void);
        
        char *kmap(KeySym, uint);
       -void cresize(int, int);
        void selclear(void);
        
        void selinit(void);
        void selnormalize(void);
        int selected(int, int);
        char *getsel(void);
       -int x2col(int);
       -int y2row(int);
        
        size_t utf8decode(char *, Rune *, size_t);
        size_t utf8encode(Rune, char *);
 (DIR) diff --git a/win.h b/win.h
       @@ -16,7 +16,6 @@ void xloadcols(void);
        int xsetcolorname(int, const char *);
        void xsettitle(char *);
        void xsetpointermotion(int);
       -void xresize(int, int);
        void xselpaste(void);
        void xsetsel(char *, Time);
        void zoom(const Arg *);
 (DIR) diff --git a/x.c b/x.c
       @@ -88,12 +88,16 @@ static void xclear(int, int, int, int);
        static void xdrawcursor(void);
        static int xgeommasktogravity(int);
        static void xinit(void);
       +static void cresize(int, int);
       +static void xresize(int, int);
        static int xloadfont(Font *, FcPattern *);
        static void xloadfonts(char *, double);
        static void xunloadfont(Font *);
        static void xunloadfonts(void);
        static void xsetenv(void);
        static void xseturgency(int);
       +static int x2col(int);
       +static int y2row(int);
        
        static void expose(XEvent *);
        static void visibility(XEvent *);
       @@ -109,7 +113,6 @@ static void propnotify(XEvent *);
        static void selnotify(XEvent *);
        static void selclear_(XEvent *);
        static void selrequest(XEvent *);
       -
        static void selcopy(Time);
        static void getbuttoninfo(XEvent *);
        static void mousereport(XEvent *);
       @@ -148,6 +151,11 @@ static DC dc;
        static XWindow xw;
        static XSelection xsel;
        
       +enum window_state {
       +        WIN_VISIBLE = 1,
       +        WIN_FOCUSED = 2
       +};
       +
        /* Font Ring Cache */
        enum {
                FRC_NORMAL,
       @@ -200,6 +208,24 @@ zoomreset(const Arg *arg)
                }
        }
        
       +int
       +x2col(int x)
       +{
       +        x -= borderpx;
       +        x /= win.cw;
       +
       +        return LIMIT(x, 0, term.col-1);
       +}
       +
       +int
       +y2row(int y)
       +{
       +        y -= borderpx;
       +        y /= win.ch;
       +
       +        return LIMIT(y, 0, term.row-1);
       +}
       +
        void
        getbuttoninfo(XEvent *e)
        {
       @@ -597,6 +623,23 @@ bmotion(XEvent *e)
        }
        
        void
       +cresize(int width, int height)
       +{
       +        int col, row;
       +
       +        if (width != 0)
       +                win.w = width;
       +        if (height != 0)
       +                win.h = height;
       +
       +        col = (win.w - 2 * borderpx) / win.cw;
       +        row = (win.h - 2 * borderpx) / win.ch;
       +
       +        tresize(col, row);
       +        xresize(col, row);
       +}
       +
       +void
        xresize(int col, int row)
        {
                win.tw = MAX(1, col * win.cw);