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
applied Peter Hartlich's border collapse patch
[dwm.git]
/
dwm.c
diff --git
a/dwm.c
b/dwm.c
index
8762269
..
5aa71b7
100644
(file)
--- a/
dwm.c
+++ b/
dwm.c
@@
-27,14
+27,15
@@
*/
#include <errno.h>
#include <locale.h>
*/
#include <errno.h>
#include <locale.h>
-#include <regex.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/select.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/select.h>
+#include <sys/types.h>
#include <sys/wait.h>
#include <sys/wait.h>
+#include <regex.h>
#include <X11/cursorfont.h>
#include <X11/keysym.h>
#include <X11/Xatom.h>
#include <X11/cursorfont.h>
#include <X11/keysym.h>
#include <X11/Xatom.h>
@@
-341,7
+342,7
@@
buttonpress(XEvent *e) {
movemouse(c);
}
else if(ev->button == Button2) {
movemouse(c);
}
else if(ev->button == Button2) {
- if(isarrange(tile) && !c->isfixed && c->isfloating)
+ if(ISTILE && !c->isfixed && c->isfloating)
togglefloating(NULL);
else
zoom(NULL);
togglefloating(NULL);
else
zoom(NULL);
@@
-645,8
+646,10
@@
enternotify(XEvent *e) {
if(ev->mode != NotifyNormal || ev->detail == NotifyInferior)
return;
if(ev->mode != NotifyNormal || ev->detail == NotifyInferior)
return;
- if((c = getclient(ev->window)))
+ if((c = getclient(ev->window))) {
focus(c);
focus(c);
+ restack();
+ }
else if(ev->window == root) {
selscreen = True;
focus(NULL);
else if(ev->window == root) {
selscreen = True;
focus(NULL);
@@
-1398,7
+1401,7
@@
void
setmwfact(const char *arg) {
double delta;
setmwfact(const char *arg) {
double delta;
- if(!isarrange(tile))
+ if(!ISTILE)
return;
/* arg handling, manipulate mwfact */
if(arg == NULL)
return;
/* arg handling, manipulate mwfact */
if(arg == NULL)
@@
-1418,6
+1421,7
@@
setmwfact(const char *arg) {
void
setup(void) {
void
setup(void) {
+ int d;
unsigned int i, j, mask;
Window w;
XModifierKeymap *modmap;
unsigned int i, j, mask;
Window w;
XModifierKeymap *modmap;
@@
-1507,7
+1511,7
@@
setup(void) {
XSetFont(dpy, dc.gc, dc.font.xfont->fid);
/* multihead support */
XSetFont(dpy, dc.gc, dc.font.xfont->fid);
/* multihead support */
- selscreen = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask);
+ selscreen = XQueryPointer(dpy, root, &w, &w, &d, &d, &d, &d, &mask);
}
void
}
void
@@
-1567,7
+1571,7
@@
textw(const char *text) {
void
tile(void) {
unsigned int i, n, nx, ny, nw, nh, mw, th;
void
tile(void) {
unsigned int i, n, nx, ny, nw, nh, mw, th;
- Client *c;
+ Client *c, *mc;
for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next))
n++;
for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next))
n++;
@@
-1580,7
+1584,8
@@
tile(void) {
nx = wax;
ny = way;
nx = wax;
ny = way;
- for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) {
+ nw = 0; /* gcc stupidity requires this */
+ for(i = 0, c = mc = nexttiled(clients); c; c = nexttiled(c->next), i++) {
c->ismax = False;
if(i == 0) { /* master */
nw = mw - 2 * c->border;
c->ismax = False;
if(i == 0) { /* master */
nw = mw - 2 * c->border;
@@
-1589,9
+1594,9
@@
tile(void) {
else { /* tile window */
if(i == 1) {
ny = way;
else { /* tile window */
if(i == 1) {
ny = way;
- nx += mw;
+ nx += mc->w + mc->border;
+ nw = waw - nx - 2 * c->border;
}
}
- nw = waw - mw - 2 * c->border;
if(i + 1 == n) /* remainder */
nh = (way + wah) - ny - 2 * c->border;
else
if(i + 1 == n) /* remainder */
nh = (way + wah) - ny - 2 * c->border;
else
@@
-1599,7
+1604,7
@@
tile(void) {
}
resize(c, nx, ny, nw, nh, RESIZEHINTS);
if(n > 1 && th != wah)
}
resize(c, nx, ny, nw, nh, RESIZEHINTS);
if(n > 1 && th != wah)
- ny += nh + 2 * c->border;
+ ny = c->y + c->h + c->border;
}
}
}
}
@@
-1673,7
+1678,7
@@
toggleview(const char *arg) {
seltags[i] = !seltags[i];
for(j = 0; j < ntags && !seltags[j]; j++);
if(j == ntags)
seltags[i] = !seltags[i];
for(j = 0; j < ntags && !seltags[j]; j++);
if(j == ntags)
- seltags[i] = True; /* cannot toggle last view */
+ seltags[i] = True; /* at least one tag must be viewed */
arrange();
}
arrange();
}
@@
-1849,7
+1854,7
@@
void
zoom(const char *arg) {
Client *c;
zoom(const char *arg) {
Client *c;
- if(!sel || !isarrange(tile) || sel->isfloating)
+ if(!sel || !ISTILE || sel->isfloating)
return;
if((c = sel) == nexttiled(clients))
if(!(c = nexttiled(c->next)))
return;
if((c = sel) == nexttiled(clients))
if(!(c = nexttiled(c->next)))