comparison client.c @ 45:7943c72e34eb

added pointer warps on kb-driven/manage-driven focus
author Anselm R. Garbe <garbeam@wmii.de>
date Thu, 13 Jul 2006 12:00:20 +0200
parents a36f95a4841a
children 58307ad56ec1
comparison
equal deleted inserted replaced
44:a36f95a4841a 45:7943c72e34eb
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)