Xinqi Bao's Git
projects
/
dwm.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
thanks to recursions on IRC for his remark
[dwm.git]
/
dwm.c
diff --git
a/dwm.c
b/dwm.c
index
5df912b
..
f955d44
100644
(file)
--- a/
dwm.c
+++ b/
dwm.c
@@
-389,6
+389,7
@@
arrange(Monitor *m) {
showhide(m->stack);
else for(m = mons; m; m = m->next)
showhide(m->stack);
showhide(m->stack);
else for(m = mons; m; m = m->next)
showhide(m->stack);
+ focus(NULL);
if(m)
arrangemon(m);
else for(m = mons; m; m = m->next)
if(m)
arrangemon(m);
else for(m = mons; m; m = m->next)
@@
-597,7
+598,6
@@
configurenotify(XEvent *e) {
updatebars();
for(m = mons; m; m = m->next)
XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh);
updatebars();
for(m = mons; m; m = m->next)
XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh);
- focus(NULL);
arrange(NULL);
}
}
arrange(NULL);
}
}
@@
-615,14
+615,22
@@
configurerequest(XEvent *e) {
c->bw = ev->border_width;
else if(c->isfloating || !selmon->lt[selmon->sellt]->arrange) {
m = c->mon;
c->bw = ev->border_width;
else if(c->isfloating || !selmon->lt[selmon->sellt]->arrange) {
m = c->mon;
- if(ev->value_mask & CWX)
+ if(ev->value_mask & CWX) {
+ c->oldx = c->x;
c->x = m->mx + ev->x;
c->x = m->mx + ev->x;
- if(ev->value_mask & CWY)
+ }
+ if(ev->value_mask & CWY) {
+ c->oldy = c->y;
c->y = m->my + ev->y;
c->y = m->my + ev->y;
- if(ev->value_mask & CWWidth)
+ }
+ if(ev->value_mask & CWWidth) {
+ c->oldw = c->w;
c->w = ev->width;
c->w = ev->width;
- if(ev->value_mask & CWHeight)
+ }
+ if(ev->value_mask & CWHeight) {
+ c->oldh = c->h;
c->h = ev->height;
c->h = ev->height;
+ }
if((c->x + c->w) > m->mx + m->mw && c->isfloating)
c->x = m->mx + (m->mw / 2 - c->w / 2); /* center in x direction */
if((c->y + c->h) > m->my + m->mh && c->isfloating)
if((c->x + c->w) > m->mx + m->mw && c->isfloating)
c->x = m->mx + (m->mw / 2 - c->w / 2); /* center in x direction */
if((c->y + c->h) > m->my + m->mh && c->isfloating)
@@
-827,13
+835,14
@@
enternotify(XEvent *e) {
if((ev->mode != NotifyNormal || ev->detail == NotifyInferior) && ev->window != root)
return;
c = wintoclient(ev->window);
if((ev->mode != NotifyNormal || ev->detail == NotifyInferior) && ev->window != root)
return;
c = wintoclient(ev->window);
- if((m = wintomon(ev->window)) && m != selmon) {
+ m = c ? c->mon : wintomon(ev->window);
+ if(m != selmon) {
unfocus(selmon->sel, True);
selmon = m;
}
unfocus(selmon->sel, True);
selmon = m;
}
- else if(
c == selmon->sel || c == NULL
)
+ else if(
!c || c == selmon->sel
)
return;
return;
- focus(
(wintoclient(ev->window))
);
+ focus(
c
);
}
void
}
void
@@
-1112,8
+1121,8
@@
manage(Window w, XWindowAttributes *wa) {
applyrules(c);
}
/* geometry */
applyrules(c);
}
/* geometry */
- c->x = c->oldx = wa->x
+ c->mon->wx
;
- c->y = c->oldy = wa->y
+ c->mon->wy
;
+ c->x = c->oldx = wa->x;
+ c->y = c->oldy = wa->y;
c->w = c->oldw = wa->width;
c->h = c->oldh = wa->height;
c->oldbw = wa->border_width;
c->w = c->oldw = wa->width;
c->h = c->oldh = wa->height;
c->oldbw = wa->border_width;
@@
-1149,10
+1158,9
@@
manage(Window w, XWindowAttributes *wa) {
attach(c);
attachstack(c);
XMoveResizeWindow(dpy, c->win, c->x + 2 * sw, c->y, c->w, c->h); /* some windows require this */
attach(c);
attachstack(c);
XMoveResizeWindow(dpy, c->win, c->x + 2 * sw, c->y, c->w, c->h); /* some windows require this */
+ XMapWindow(dpy, c->win);
setclientstate(c, NormalState);
arrange(c->mon);
setclientstate(c, NormalState);
arrange(c->mon);
- XMapWindow(dpy, c->win);
- focus(c);
}
void
}
void
@@
-1617,7
+1625,6
@@
void
tag(const Arg *arg) {
if(selmon->sel && arg->ui & TAGMASK) {
selmon->sel->tags = arg->ui & TAGMASK;
tag(const Arg *arg) {
if(selmon->sel && arg->ui & TAGMASK) {
selmon->sel->tags = arg->ui & TAGMASK;
- focus(NULL);
arrange(selmon);
}
}
arrange(selmon);
}
}
@@
-1698,7
+1705,6
@@
toggletag(const Arg *arg) {
newtags = selmon->sel->tags ^ (arg->ui & TAGMASK);
if(newtags) {
selmon->sel->tags = newtags;
newtags = selmon->sel->tags ^ (arg->ui & TAGMASK);
if(newtags) {
selmon->sel->tags = newtags;
- focus(NULL);
arrange(selmon);
}
}
arrange(selmon);
}
}
@@
-1709,7
+1715,6
@@
toggleview(const Arg *arg) {
if(newtagset) {
selmon->tagset[selmon->seltags] = newtagset;
if(newtagset) {
selmon->tagset[selmon->seltags] = newtagset;
- focus(NULL);
arrange(selmon);
}
}
arrange(selmon);
}
}
@@
-1975,7
+1980,6
@@
view(const Arg *arg) {
selmon->seltags ^= 1; /* toggle sel tagset */
if(arg->ui & TAGMASK)
selmon->tagset[selmon->seltags] = arg->ui & TAGMASK;
selmon->seltags ^= 1; /* toggle sel tagset */
if(arg->ui & TAGMASK)
selmon->tagset[selmon->seltags] = arg->ui & TAGMASK;
- focus(NULL);
arrange(selmon);
}
arrange(selmon);
}