Got questions, comments, patches, etc.?
Contact Jason Woofenden
gitweb
/
dwm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added some TODOs, some other focus fixes
[dwm.git]
/
dwm.c
diff --git
a/dwm.c
b/dwm.c
index
d3169be
..
b54ccd4
100644
(file)
--- a/
dwm.c
+++ b/
dwm.c
@@
-1,4
+1,4
@@
-#define XINULATOR /* debug, simulates dual head */
+//#define XINULATOR /* debug, simulates dual head */
/* See LICENSE file for copyright and license details.
*
* dynamic window manager is designed like any other X client as well. It is
/* See LICENSE file for copyright and license details.
*
* dynamic window manager is designed like any other X client as well. It is
@@
-400,12
+400,9
@@
buttonpress(XEvent *e) {
for(m = mons; m; m = m->next)
if(ev->window == m->barwin) {
if(m != selmon) {
for(m = mons; m; m = m->next)
if(ev->window == m->barwin) {
if(m != selmon) {
- if(selmon->stack)
- focus(selmon->stack);
- else {
- selmon = m;
- focus(NULL);
- }
+ unfocus(selmon->stack);
+ selmon = m;
+ focus(NULL);
}
break;
}
}
break;
}
@@
-1507,8
+1504,9
@@
tagmon(const Arg *arg) {
c->mon = m;
attach(c);
attachstack(c);
c->mon = m;
attach(c);
attachstack(c);
- selmon->sel = selmon->stack;
m->sel = c;
m->sel = c;
+ for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext);
+ selmon->sel = c;
arrange();
break;
}
arrange();
break;
}
@@
-1608,6
+1606,7
@@
unfocus(Client *c) {
return;
grabbuttons(c, False);
XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
return;
grabbuttons(c, False);
XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
+ XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
}
void
}
void
@@
-1622,7
+1621,10
@@
unmanage(Client *c) {
detach(c);
detachstack(c);
if(c->mon->sel == c) {
detach(c);
detachstack(c);
if(c->mon->sel == c) {
- c->mon->sel = c->mon->stack;
+ /* TODO: consider separate the next code into a function or into detachstack? */
+ Client *tc;
+ for(tc = c->mon->stack; tc && !ISVISIBLE(tc); tc = tc->snext);
+ c->mon->sel = tc;
focus(NULL);
}
XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
focus(NULL);
}
XUngrabButton(dpy, AnyButton, AnyModifier, c->win);