# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit a8314643b1aeaa2187dad71dc5748aaac1760c1b
    parent a09138afa57adb4b76dba8ca72dc7ee2642a5c8d
    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:
    Mst.c | 36------------------------------------
    Mst.h | 9+--------
    Mwin.h | 1-
    Mx.c | 45++++++++++++++++++++++++++++++++++++++++++++-

    4 files changed, 45 insertions(+), 46 deletions(-)
    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);
    -}
    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 *);
    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 *);
    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);