99 else if(!strncmp(arg, "prev", 5)) |
99 else if(!strncmp(arg, "prev", 5)) |
100 for(c = stack; c && c->snext; c = c->snext); |
100 for(c = stack; c && c->snext; c = c->snext); |
101 if(!c) |
101 if(!c) |
102 c = stack; |
102 c = stack; |
103 craise(c); |
103 craise(c); |
|
104 XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2); |
104 focus(c); |
105 focus(c); |
105 } |
106 } |
106 |
107 |
107 void |
108 void |
108 ckill(void *aux) |
109 ckill(void *aux) |
233 XUnmapWindow(dpy, c->title); |
234 XUnmapWindow(dpy, c->title); |
234 XSetWindowBorder(dpy, c->win, dc.fg); |
235 XSetWindowBorder(dpy, c->win, dc.fg); |
235 draw_client(c); |
236 draw_client(c); |
236 XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime); |
237 XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime); |
237 XFlush(dpy); |
238 XFlush(dpy); |
|
239 discard_events(EnterWindowMask); |
238 } |
240 } |
239 |
241 |
240 void |
242 void |
241 manage(Window w, XWindowAttributes *wa) |
243 manage(Window w, XWindowAttributes *wa) |
242 { |
244 { |
277 XGrabButton(dpy, Button2, Mod1Mask, c->win, False, ButtonPressMask, |
279 XGrabButton(dpy, Button2, Mod1Mask, c->win, False, ButtonPressMask, |
278 GrabModeAsync, GrabModeSync, None, None); |
280 GrabModeAsync, GrabModeSync, None, None); |
279 XGrabButton(dpy, Button3, Mod1Mask, c->win, False, ButtonPressMask, |
281 XGrabButton(dpy, Button3, Mod1Mask, c->win, False, ButtonPressMask, |
280 GrabModeAsync, GrabModeSync, None, None); |
282 GrabModeAsync, GrabModeSync, None, None); |
281 arrange(); |
283 arrange(); |
|
284 XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2); |
282 focus(c); |
285 focus(c); |
283 } |
286 } |
284 |
287 |
285 void |
288 void |
286 gravitate(Client *c, Bool invert) |
289 gravitate(Client *c, Bool invert) |