URI: 
       resize handles offscreen issues - dwm - dynamic window manager
  HTML git clone https://git.parazyd.org/dwm
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit e0f039789643381485dab5c467f66db5162d4f63
   DIR parent ca3e847e459e1ba43f45513877d39d50cce7a0c5
  HTML Author: Anselm R Garbe <garbeam@gmail.com>
       Date:   Wed, 20 Feb 2008 08:13:41 +0000
       
       resize handles offscreen issues
       Diffstat:
         M dwm.c                               |      24 +++++++++++-------------
       
       1 file changed, 11 insertions(+), 13 deletions(-)
       ---
   DIR diff --git a/dwm.c b/dwm.c
       @@ -1263,9 +1263,10 @@ reapply(const char *arg) {
        
        void
        resize(Client *c, int x, int y, int w, int h, Bool sizehints) {
       +        Monitor *m;
                XWindowChanges wc;
       -        //Monitor scr = monitors[monitorat()];
       -//        c->monitor = monitorat();
       +
       +        m = &monitors[c->monitor];
        
                if(sizehints) {
                        /* set minimum possible */
       @@ -1307,17 +1308,14 @@ resize(Client *c, int x, int y, int w, int h, Bool sizehints) {
                }
                if(w <= 0 || h <= 0)
                        return;
       -        /* TODO: offscreen appearance fixes */
       -        /*
       -        if(x > scr.sw)
       -                x = scr.sw - w - 2 * c->border;
       -        if(y > scr.sh)
       -                y = scr.sh - h - 2 * c->border;
       -        if(x + w + 2 * c->border < scr.sx)
       -                x = scr.sx;
       -        if(y + h + 2 * c->border < scr.sy)
       -                y = scr.sy;
       -        */
       +        if(x > m->sw)
       +                x = m->sw - w - 2 * c->border;
       +        if(y > m->sh)
       +                y = m->sh - h - 2 * c->border;
       +        if(x + w + 2 * c->border < m->sx)
       +                x = m->sx;
       +        if(y + h + 2 * c->border < m->sy)
       +                y = m->sy;
                if(c->x != x || c->y != y || c->w != w || c->h != h) {
                        c->x = wc.x = x;
                        c->y = wc.y = y;