dwm-6.0-singularborders_bstack.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       dwm-6.0-singularborders_bstack.diff (2365B)
       ---
            1 --- dwm.c.orig        2013-03-23 15:10:01.553315130 +0100
            2 +++ dwm.c        2013-03-23 15:12:51.639978935 +0100
            3 @@ -440,13 +440,16 @@
            4          for(i = mx = tx = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
            5                  if(i < m->nmasters[m->curtag]) {
            6                          w = (m->ww - mx) / (MIN(n, m->nmasters[m->curtag]) - i);
            7 -                        resize(c, m->wx + mx, m->wy, w - (2*c->bw), mh - (2*c->bw), False);
            8 -                        mx += WIDTH(c);
            9 +                        if(n == 1)
           10 +                                resize(c, m->wx - c->bw, m->wy, m->ww, m->wh, False);
           11 +                        else
           12 +                                resize(c, m->wx + mx - c->bw, m->wy, w, mh - c->bw, False);
           13 +                        mx += WIDTH(c) - c->bw;
           14                  }
           15                  else {
           16                          w = (m->ww - tx) / (n - i);
           17 -                        resize(c, m->wx + tx, m->wy + mh, w - (2*c->bw), m->wh - mh - (2*c->bw), False);
           18 -                        tx += WIDTH(c);
           19 +                        resize(c, m->wx + tx - c->bw, m->wy + mh, w, m->wh - mh - c->bw, False);
           20 +                        tx += WIDTH(c) - c->bw;
           21                  }
           22  }
           23  
           24 @@ -869,6 +872,8 @@
           25  
           26  void
           27  focus(Client *c) {
           28 +        XWindowChanges wc;
           29 +
           30          if(!c || !ISVISIBLE(c))
           31                  for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext);
           32          /* was if(selmon->sel) */
           33 @@ -883,6 +888,11 @@
           34                  attachstack(c);
           35                  grabbuttons(c, True);
           36                  XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
           37 +                if(!c->isfloating) {
           38 +                        wc.sibling = selmon->barwin;
           39 +                        wc.stack_mode = Below;
           40 +                        XConfigureWindow(dpy, c->win, CWSibling | CWStackMode, &wc);
           41 +                }
           42                  setfocus(c);
           43          }
           44          else
           45 @@ -1227,7 +1237,7 @@
           46          if(n > 0) /* override layout symbol */
           47                  snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n);
           48          for(c = nexttiled(m->clients); c; c = nexttiled(c->next))
           49 -                resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, False);
           50 +                resize(c, m->wx - c->bw, m->wy, m->ww, m->wh, False);
           51  }
           52  
           53  void
           54 @@ -1744,13 +1754,16 @@
           55          for(i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
           56                  if(i < m->nmaster) {
           57                          h = (m->wh - my) / (MIN(n, m->nmaster) - i);
           58 -                        resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), False);
           59 -                        my += HEIGHT(c);
           60 +                        if(n == 1)
           61 +                                resize(c, m->wx - c->bw, m->wy, m->ww, m->wh, False);
           62 +                        else
           63 +                                resize(c, m->wx - c->bw, m->wy + my, mw - c->bw, h - c->bw, False);
           64 +                        my += HEIGHT(c) - c->bw;
           65                  }
           66                  else {
           67                          h = (m->wh - ty) / (n - i);
           68 -                        resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), False);
           69 -                        ty += HEIGHT(c);
           70 +                        resize(c, m->wx + mw - c->bw, m->wy + ty, m->ww - mw, h - c->bw, False);
           71 +                        ty += HEIGHT(c) - c->bw;
           72                  }
           73  }
           74