tabbed

customized build of tabbed, the suckless tab manager
git clone git://src.adamsgaard.dk/tabbed
Log | Files | Refs | README | LICENSE

commit befea9dd3451e8babfbf2ec47b339f556b1caf29
parent c306da49f63285418be35652b503d290c06ba316
Author: Anders Damsgaard <anders@adamsgaard.dk>
Date:   Thu, 26 Sep 2019 09:46:13 +0200

Apply autohide patch

Diffstat:
Mtabbed.c | 17+++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/tabbed.c b/tabbed.c @@ -152,7 +152,7 @@ static void (*handler[LASTEvent]) (const XEvent *) = { [MapRequest] = maprequest, [PropertyNotify] = propertynotify, }; -static int bh, wx, wy, ww, wh; +static int bh, wx, wy, ww, wh, vbh; static unsigned int numlockmask; static Bool running = True, nextfocus, doinitspawn = True, fillagain = False, closelastclient = False, @@ -315,7 +315,7 @@ void drawbar(void) { XftColor *col; - int c, cc, fc, width; + int c, cc, fc, width, nbh, i; char *name = NULL; if (nclients == 0) { @@ -323,12 +323,21 @@ drawbar(void) dc.w = ww; XFetchName(dpy, win, &name); drawtext(name ? name : "", dc.norm); - XCopyArea(dpy, dc.drawable, win, dc.gc, 0, 0, ww, bh, 0, 0); + XCopyArea(dpy, dc.drawable, win, dc.gc, 0, 0, ww, vbh, 0, 0); XSync(dpy, False); return; } + nbh = nclients > 1 ? vbh : 0; + if (bh != nbh) { + bh = nbh; + for (i = 0; i < nclients; i++) + XMoveResizeWindow(dpy, clients[i]->win, 0, bh, ww, wh - bh); + } + if (bh == 0) + return; + width = ww; cc = ww / tabwidth; if (nclients > cc) @@ -975,7 +984,7 @@ setup(void) screen = DefaultScreen(dpy); root = RootWindow(dpy, screen); initfont(font); - bh = dc.h = dc.font.height + 2; + vbh = dc.h = dc.font.height + 2; /* init atoms */ wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);