# st

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

| Log | Files | Refs | README | LICENSE

    commit 29f341da7cf32888f45005e08de202d9a372d972
    parent dc3b5babf1f8639a0d65cd347fc7879ac0461012
    Author: Jules Maselbas <jules.maselbas@grenoble-inp.org>
    Date:   Wed, 27 Jun 2018 17:08:30 +0200

    Fix crash on resize

    Prevent to realloc xw.specbuc with a negative number of col.
    Add proper hints for the minimal size, for one character.

    Diffstat:
    Mx.c | 12++++++++----

    1 file changed, 8 insertions(+), 4 deletions(-)
    diff --git a/x.c b/x.c
    @@ -672,6 +672,8 @@ cresize(int width, int height)

     	col = (win.w - 2 * borderpx) / win.cw;
     	row = (win.h - 2 * borderpx) / win.ch;
    +	col = MAX(1, col);
    +	row = MAX(1, row);

     	tresize(col, row);
     	xresize(col, row);
    @@ -681,8 +683,8 @@ cresize(int width, int height)
     void
     xresize(int col, int row)
     {
    -	win.tw = MAX(1, col * win.cw);
    -	win.th = MAX(1, row * win.ch);
    +	win.tw = col * win.cw;
    +	win.th = row * win.ch;

     	XFreePixmap(xw.dpy, xw.buf);
     	xw.buf = XCreatePixmap(xw.dpy, xw.win, win.w, win.h,
    @@ -788,15 +790,17 @@ xhints(void)

     	sizeh = XAllocSizeHints();

    -	sizeh->flags = PSize | PResizeInc | PBaseSize;
    +	sizeh->flags = PSize | PResizeInc | PBaseSize | PMinSize;
     	sizeh->height = win.h;
     	sizeh->width = win.w;
     	sizeh->height_inc = win.ch;
     	sizeh->width_inc = win.cw;
     	sizeh->base_height = 2 * borderpx;
     	sizeh->base_width = 2 * borderpx;
    +	sizeh->min_height = win.ch + 2 * borderpx;
    +	sizeh->min_width = win.cw + 2 * borderpx;
     	if (xw.isfixed) {
    -		sizeh->flags |= PMaxSize | PMinSize;
    +		sizeh->flags |= PMaxSize;
     		sizeh->min_width = sizeh->max_width = win.w;
     		sizeh->min_height = sizeh->max_height = win.h;
     	}