9 #include <X11/Xatom.h> |
9 #include <X11/Xatom.h> |
10 #include <X11/Xutil.h> |
10 #include <X11/Xutil.h> |
11 |
11 |
12 #include "dwm.h" |
12 #include "dwm.h" |
13 |
13 |
14 static void floating(void); |
14 static void (*arrange)(void *) = floating; |
15 static void tiling(void); |
|
16 static void (*arrange)(void) = floating; |
|
17 |
15 |
18 void |
16 void |
19 max(void *aux) |
17 max(void *aux) |
20 { |
18 { |
21 if(!stack) |
19 if(!stack) |
22 return; |
20 return; |
23 stack->x = sx; |
21 stack->x = sx; |
24 stack->y = sy; |
22 stack->y = sy; |
25 stack->w = sw - 2 * stack->border; |
23 stack->w = sw - 2 * stack->border; |
26 stack->h = sh - 2 * stack->border; |
24 stack->h = sh - 2 * stack->border; |
|
25 craise(stack); |
27 resize(stack); |
26 resize(stack); |
28 discard_events(EnterWindowMask); |
27 discard_events(EnterWindowMask); |
29 } |
28 } |
30 |
29 |
31 static void |
30 void |
32 floating(void) |
31 floating(void *aux) |
33 { |
32 { |
34 Client *c; |
33 Client *c; |
35 |
34 |
|
35 arrange = floating; |
36 for(c = stack; c; c = c->snext) |
36 for(c = stack; c; c = c->snext) |
37 resize(c); |
37 resize(c); |
38 discard_events(EnterWindowMask); |
38 discard_events(EnterWindowMask); |
39 } |
39 } |
40 |
40 |
41 static void |
41 void |
42 tiling(void) |
42 tiling(void *aux) |
43 { |
43 { |
44 Client *c; |
44 Client *c; |
45 int n, cols, rows, gw, gh, i, j; |
45 int n, cols, rows, gw, gh, i, j; |
46 float rt, fd; |
46 float rt, fd; |
47 |
47 |
|
48 arrange = tiling; |
48 if(!clients) |
49 if(!clients) |
49 return; |
50 return; |
50 for(n = 0, c = clients; c; c = c->next, n++); |
51 for(n = 0, c = clients; c; c = c->next, n++); |
51 rt = sqrt(n); |
52 rt = sqrt(n); |
52 if(modff(rt, &fd) < 0.5) |
53 if(modff(rt, &fd) < 0.5) |
278 GrabModeAsync, GrabModeSync, None, None); |
268 GrabModeAsync, GrabModeSync, None, None); |
279 XGrabButton(dpy, Button2, Mod1Mask, c->win, False, ButtonPressMask, |
269 XGrabButton(dpy, Button2, Mod1Mask, c->win, False, ButtonPressMask, |
280 GrabModeAsync, GrabModeSync, None, None); |
270 GrabModeAsync, GrabModeSync, None, None); |
281 XGrabButton(dpy, Button3, Mod1Mask, c->win, False, ButtonPressMask, |
271 XGrabButton(dpy, Button3, Mod1Mask, c->win, False, ButtonPressMask, |
282 GrabModeAsync, GrabModeSync, None, None); |
272 GrabModeAsync, GrabModeSync, None, None); |
283 arrange(); |
273 arrange(NULL); |
284 XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2); |
274 XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2); |
285 focus(c); |
275 focus(c); |
286 } |
276 } |
287 |
277 |
288 void |
278 void |