tabbed-0.4.1-autohide.diff - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
tabbed-0.4.1-autohide.diff (1528B)
---
1 diff -up ../tabbed-0.4.1/tabbed.c ./tabbed.c
2 --- ../tabbed-0.4.1/tabbed.c 2012-08-20 09:15:07.000000000 +0200
3 +++ ./tabbed.c 2012-11-08 20:02:21.048334570 +0100
4 @@ -142,7 +142,7 @@ static void (*handler[LASTEvent]) (const
5 [MapRequest] = maprequest,
6 [PropertyNotify] = propertynotify,
7 };
8 -static int bh, wx, wy, ww, wh;
9 +static int vbh, bh, wx, wy, ww, wh;
10 static unsigned int numlockmask = 0;
11 static Bool running = True, nextfocus, doinitspawn = True;
12 static Display *dpy;
13 @@ -283,7 +283,7 @@ die(const char *errstr, ...) {
14 void
15 drawbar() {
16 unsigned long *col;
17 - int n, width;
18 + int n, width, nbh;
19 Client *c, *fc;
20 char *name = NULL;
21
22 @@ -292,10 +292,18 @@ drawbar() {
23 dc.w = ww;
24 XFetchName(dpy, win, &name);
25 drawtext(name ? name : "", dc.norm);
26 - XCopyArea(dpy, dc.drawable, win, dc.gc, 0, 0, ww, bh, 0, 0);
27 + XCopyArea(dpy, dc.drawable, win, dc.gc, 0, 0, ww, vbh, 0, 0);
28 XSync(dpy, False);
29 return;
30 }
31 + nbh = clients->next ? vbh : 0;
32 + if (nbh != bh) {
33 + bh = nbh;
34 + for (c = clients; c; c = c->next)
35 + XMoveResizeWindow(dpy, c->win, 0, bh, ww, wh - bh);
36 + }
37 + if (bh == 0)
38 + return;
39 width = ww;
40 for(c = clients; c; c = c->next)
41 c->tabx = -1;
42 @@ -736,7 +744,7 @@ setup(void) {
43 screen = DefaultScreen(dpy);
44 root = RootWindow(dpy, screen);
45 initfont(font);
46 - bh = dc.h = dc.font.height + 2;
47 + vbh = dc.h = dc.font.height + 2;
48 /* init atoms */
49 wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
50 wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);