dwm

Kris's build of dwm
git clone git clone https://git.krisyotam.com/krisyotam/dwm.git
Log | Files | Refs | README | LICENSE

warp.c (803B)


      1 void
      2 warp(const Client *c)
      3 {
      4 	Monitor *m;
      5 	Bar *bar;
      6 	int x, y;
      7 
      8 	if (ignore_warp)
      9 		return;
     10 
     11 	if (!c) {
     12 		XWarpPointer(dpy, None, root, 0, 0, 0, 0, selmon->wx + selmon->ww / 2, selmon->wy + selmon->wh / 2);
     13 		return;
     14 	}
     15 
     16 	#if BANISH_PATCH
     17 	if (cursor_hidden) {
     18 		mouse_x = c->x + c->w/2;
     19 		mouse_y = c->y + c->h/2;
     20 		return;
     21 	}
     22 	#endif // BANISH_PATCH
     23 
     24 	if (!getrootptr(&x, &y))
     25 		return;
     26 
     27 	if (!force_warp &&
     28 		(x > c->x - c->bw &&
     29 		 y > c->y - c->bw &&
     30 		 x < c->x + c->w + c->bw*2 &&
     31 		 y < c->y + c->h + c->bw*2))
     32 		return;
     33 
     34 	force_warp = 0;
     35 
     36 	for (m = mons; m; m = m->next)
     37 		for (bar = m->bar; bar; bar = bar->next)
     38 			if (x > bar->bx &&
     39 				x < bar->bx + bar->bw &&
     40 				y > bar->by &&
     41 				y < bar->by + bar->bh)
     42 				return;
     43 
     44 	XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2);
     45 }
     46