tremoved client title bar - dwm - [fork] customized build of dwm, the dynamic w… | |
git clone git://src.adamsgaard.dk/dwm | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 6c5dc7017cff322b6402b3849c07529f5ab916fe | |
parent ae0b4fdd92bc787f14ee21f1dd5c2ced06c6a36f | |
Author: Anselm R. Garbe <[email protected]> | |
Date: Sun, 14 Jan 2007 22:27:29 +0100 | |
removed client title bar | |
Diffstat: | |
M client.c | 50 +++--------------------------… | |
M draw.c | 6 ------ | |
M dwm.1 | 1 - | |
M dwm.h | 5 ----- | |
M event.c | 7 ++----- | |
M view.c | 14 ++++---------- | |
6 files changed, 10 insertions(+), 73 deletions(-) | |
--- | |
diff --git a/client.c b/client.c | |
t@@ -61,12 +61,6 @@ xerrordummy(Display *dsply, XErrorEvent *ee) { | |
/* extern functions */ | |
void | |
-ban(Client *c) { | |
- XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | |
- XMoveWindow(dpy, c->twin, c->tx + 2 * sw, c->ty); | |
-} | |
- | |
-void | |
configure(Client *c) { | |
XEvent synev; | |
t@@ -121,16 +115,6 @@ getclient(Window w) { | |
return NULL; | |
} | |
-Client * | |
-getctitle(Window w) { | |
- Client *c; | |
- | |
- for(c = clients; c; c = c->next) | |
- if(c->twin == w) | |
- return c; | |
- return NULL; | |
-} | |
- | |
void | |
killclient(Arg *arg) { | |
if(!sel) | |
t@@ -145,17 +129,15 @@ void | |
manage(Window w, XWindowAttributes *wa) { | |
Client *c; | |
Window trans; | |
- XSetWindowAttributes twa; | |
c = emallocz(sizeof(Client)); | |
c->tags = emallocz(ntags * sizeof(Bool)); | |
c->win = w; | |
c->border = 0; | |
- c->x = c->tx = wa->x; | |
- c->y = c->ty = wa->y; | |
- c->w = c->tw = wa->width; | |
+ c->x = wa->x; | |
+ c->y = wa->y; | |
+ c->w = wa->width; | |
c->h = wa->height; | |
- c->th = bh; | |
updatesizehints(c); | |
if(c->x + c->w + 2 * BORDERPX > sw) | |
c->x = sw - c->w - 2 * BORDERPX; | |
t@@ -169,27 +151,18 @@ manage(Window w, XWindowAttributes *wa) { | |
XSelectInput(dpy, c->win, | |
StructureNotifyMask | PropertyChangeMask | EnterWindowMask); | |
XGetTransientForHint(dpy, c->win, &trans); | |
- twa.override_redirect = 1; | |
- twa.background_pixmap = ParentRelative; | |
- twa.event_mask = ExposureMask | EnterWindowMask; | |
- c->twin = XCreateWindow(dpy, root, c->tx, c->ty, c->tw, c->th, | |
- 0, DefaultDepth(dpy, screen), CopyFromParent, | |
- DefaultVisual(dpy, screen), | |
- CWOverrideRedirect | CWBackPixmap | CWEventMask, &twa); | |
grabbuttons(c, False); | |
updatetitle(c); | |
settags(c, getclient(trans)); | |
if(!c->isfloat) | |
c->isfloat = trans || c->isfixed; | |
- resizetitle(c); | |
if(clients) | |
clients->prev = c; | |
c->next = clients; | |
c->snext = stack; | |
stack = clients = c; | |
- ban(c); | |
+ XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | |
XMapWindow(dpy, c->win); | |
- XMapWindow(dpy, c->twin); | |
if(isvisible(c)) | |
focus(c); | |
arrange(); | |
t@@ -228,7 +201,6 @@ resize(Client *c, Bool sizehints, Corner sticky) { | |
c->x = sw - c->w; | |
if(c->y > sh) | |
c->y = sh - c->h; | |
- resizetitle(c); | |
wc.x = c->x; | |
wc.y = c->y; | |
wc.width = c->w; | |
t@@ -243,19 +215,6 @@ resize(Client *c, Bool sizehints, Corner sticky) { | |
} | |
void | |
-resizetitle(Client *c) { | |
- c->tw = textw(c->name); | |
- if(c->tw > c->w) | |
- c->tw = c->w + 2 * BORDERPX; | |
- c->tx = c->x + c->w - c->tw + 2 * BORDERPX; | |
- c->ty = c->y; | |
- if(isvisible(c)) | |
- XMoveResizeWindow(dpy, c->twin, c->tx, c->ty, c->tw, c->th); | |
- else | |
- XMoveResizeWindow(dpy, c->twin, c->tx + 2 * sw, c->ty, c->tw, … | |
-} | |
- | |
-void | |
updatesizehints(Client *c) { | |
long msize; | |
XSizeHints size; | |
t@@ -331,7 +290,6 @@ unmanage(Client *c) { | |
focus(nc); | |
} | |
XUngrabButton(dpy, AnyButton, AnyModifier, c->win); | |
- XDestroyWindow(dpy, c->twin); | |
free(c->tags); | |
free(c); | |
XSync(dpy, False); | |
diff --git a/draw.c b/draw.c | |
t@@ -141,16 +141,10 @@ void | |
drawclient(Client *c) { | |
if(c == sel && issel) { | |
drawstatus(); | |
- XUnmapWindow(dpy, c->twin); | |
XSetWindowBorder(dpy, c->win, dc.sel[ColBG]); | |
return; | |
} | |
XSetWindowBorder(dpy, c->win, dc.norm[ColBG]); | |
- XMapWindow(dpy, c->twin); | |
- dc.x = dc.y = 0; | |
- dc.w = c->tw; | |
- drawtext(c->name, dc.norm, False, False); | |
- XCopyArea(dpy, dc.drawable, c->twin, dc.gc, 0, 0, c->tw, c->th, 0, 0); | |
XSync(dpy, False); | |
} | |
diff --git a/dwm.1 b/dwm.1 | |
t@@ -26,7 +26,6 @@ which are applied to one or more windows are indicated with … | |
the top left corner. | |
.P | |
dwm draws a 1-pixel border around windows to indicate the focus state. | |
-Unfocused windows contain a small bar in front of them displaying their title. | |
.SH OPTIONS | |
.TP | |
.B \-v | |
diff --git a/dwm.h b/dwm.h | |
t@@ -78,7 +78,6 @@ struct Client { | |
int proto; | |
int x, y, w, h; | |
int rx, ry, rw, rh; /* revert geometry */ | |
- int tx, ty, tw, th; /* title window geometry */ | |
int basew, baseh, incw, inch, maxw, maxh, minw, minh; | |
long flags; | |
unsigned int border; | |
t@@ -88,7 +87,6 @@ struct Client { | |
Client *prev; | |
Client *snext; | |
Window win; | |
- Window twin; | |
}; | |
extern const char *tags[]; /* all tags */ | |
t@@ -110,15 +108,12 @@ extern Display *dpy; | |
extern Window root, barwin; | |
/* client.c */ | |
-extern void ban(Client *c); /* ban c from screen */ | |
extern void configure(Client *c); /* send synthetic configure e… | |
extern void focus(Client *c); /* focus c, c may be NULL… | |
extern Client *getclient(Window w); /* return client of w */ | |
-extern Client *getctitle(Window w); /* return client of title w… | |
extern void killclient(Arg *arg); /* kill c nicely */ | |
extern void manage(Window w, XWindowAttributes *wa); /* manage new clie… | |
extern void resize(Client *c, Bool sizehints, Corner sticky); /* resize c*/ | |
-extern void resizetitle(Client *c); /* resizes c->twin correctl… | |
extern void updatesizehints(Client *c); /* update the size hint… | |
extern void updatetitle(Client *c); /* update the name of c */ | |
extern void unmanage(Client *c); /* destroy c */ | |
diff --git a/event.c b/event.c | |
t@@ -196,7 +196,7 @@ configurerequest(XEvent *e) { | |
if(c->isfloat) { | |
resize(c, False, TopLeft); | |
if(!isvisible(c)) | |
- ban(c); | |
+ XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | |
} | |
else | |
arrange(); | |
t@@ -230,7 +230,7 @@ enternotify(XEvent *e) { | |
if(ev->mode != NotifyNormal || ev->detail == NotifyInferior) | |
return; | |
- if(((c = getclient(ev->window)) || (c = getctitle(ev->window))) && isv… | |
+ if((c = getclient(ev->window)) && isvisible(c)) | |
focus(c); | |
else if(ev->window == root) { | |
issel = True; | |
t@@ -247,8 +247,6 @@ expose(XEvent *e) { | |
if(ev->count == 0) { | |
if(barwin == ev->window) | |
drawstatus(); | |
- else if((c = getctitle(ev->window))) | |
- drawclient(c); | |
} | |
} | |
t@@ -331,7 +329,6 @@ propertynotify(XEvent *e) { | |
} | |
if(ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) { | |
updatetitle(c); | |
- resizetitle(c); | |
drawclient(c); | |
} | |
} | |
diff --git a/view.c b/view.c | |
t@@ -59,7 +59,7 @@ dofloat(void) { | |
resize(c, True, TopLeft); | |
} | |
else | |
- ban(c); | |
+ XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | |
} | |
if(!sel || !isvisible(sel)) { | |
for(c = stack; c && !isvisible(c); c = c->snext); | |
t@@ -109,8 +109,7 @@ dotile(void) { | |
i++; | |
} | |
else | |
- ban(c); | |
- | |
+ XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | |
if(!sel || !isvisible(sel)) { | |
for(c = stack; c && !isvisible(c); c = c->snext); | |
focus(c); | |
t@@ -191,19 +190,14 @@ restack(void) { | |
drawstatus(); | |
return; | |
} | |
- if(sel->isfloat || arrange == dofloat) { | |
+ if(sel->isfloat || arrange == dofloat) | |
XRaiseWindow(dpy, sel->win); | |
- XRaiseWindow(dpy, sel->twin); | |
- } | |
if(arrange != dofloat) { | |
- if(!sel->isfloat) { | |
- XLowerWindow(dpy, sel->twin); | |
+ if(!sel->isfloat) | |
XLowerWindow(dpy, sel->win); | |
- } | |
for(c = nexttiled(clients); c; c = nexttiled(c->next)) { | |
if(c == sel) | |
continue; | |
- XLowerWindow(dpy, c->twin); | |
XLowerWindow(dpy, c->win); | |
} | |
} |