Xinqi Bao's Git
projects
/
dwm.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
added ban() which takes care than a banned window is not banned again... (this reduce...
[dwm.git]
/
client.c
diff --git
a/client.c
b/client.c
index
b9c519b
..
3505e76
100644
(file)
--- a/
client.c
+++ b/
client.c
@@
-67,6
+67,14
@@
xerrordummy(Display *dsply, XErrorEvent *ee) {
/* extern */
/* extern */
+void
+ban(Client *c) {
+ if(!c || c->isbanned)
+ return;
+ c->isbanned = True;
+ XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
+}
+
void
configure(Client *c) {
XConfigureEvent ce;
void
configure(Client *c) {
XConfigureEvent ce;
@@
-148,7
+156,7
@@
killclient(Arg *arg) {
void
manage(Window w, XWindowAttributes *wa) {
void
manage(Window w, XWindowAttributes *wa) {
- Client *c;
+ Client *c
, *t
;
Window trans;
c = emallocz(sizeof(Client));
Window trans;
c = emallocz(sizeof(Client));
@@
-181,15
+189,16
@@
manage(Window w, XWindowAttributes *wa) {
grabbuttons(c, False);
XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
updatetitle(c);
grabbuttons(c, False);
XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
updatetitle(c);
- settags(c, getclient(trans));
+ t = getclient(trans);
+ settags(c, t);
if(!c->isfloat)
if(!c->isfloat)
- c->isfloat =
trans
|| c->isfixed;
+ c->isfloat =
(t != 0)
|| c->isfixed;
if(clients)
clients->prev = c;
c->next = clients;
c->snext = stack;
stack = clients = c;
if(clients)
clients->prev = c;
c->next = clients;
c->snext = stack;
stack = clients = c;
-
XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y
);
+
ban(c
);
XMapWindow(dpy, c->win);
setclientstate(c, NormalState);
if(isvisible(c))
XMapWindow(dpy, c->win);
setclientstate(c, NormalState);
if(isvisible(c))
@@
-303,8
+312,8
@@
updatesizehints(Client *c) {
}
else
c->minax = c->minay = c->maxax = c->maxay = 0;
}
else
c->minax = c->minay = c->maxax = c->maxay = 0;
- c->isfixed = (c->maxw && c->minw && c->maxh && c->minh
&&
-
c->maxw == c->minw && c->maxh == c->minh);
+ c->isfixed = (c->maxw && c->minw && c->maxh && c->minh
+
&&
c->maxw == c->minw && c->maxh == c->minh);
}
void
}
void
@@
-324,7
+333,7
@@
updatetitle(Client *c) {
strncpy(c->name, (char *)name.value, sizeof c->name);
else {
if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success
strncpy(c->name, (char *)name.value, sizeof c->name);
else {
if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success
-
&& n > 0 && *list)
+ && n > 0 && *list)
{
strncpy(c->name, *list, sizeof c->name);
XFreeStringList(list);
{
strncpy(c->name, *list, sizeof c->name);
XFreeStringList(list);