40 lines
		
	
	
		
			844 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			844 B
		
	
	
	
		
			C
		
	
	
	
	
	
| void
 | |
| barhover(XEvent *e, Bar *bar)
 | |
| {
 | |
| 	const BarRule *br;
 | |
| 	Monitor *m = bar->mon;
 | |
| 	XMotionEvent *ev = &e->xmotion;
 | |
| 	BarArg barg = { 0, 0, 0, 0 };
 | |
| 	int r;
 | |
| 
 | |
| 	for (r = 0; r < LENGTH(barrules); r++) {
 | |
| 		br = &barrules[r];
 | |
| 		if (br->bar != bar->idx || (br->monitor == 'A' && m != selmon) || br->hoverfunc == NULL)
 | |
| 			continue;
 | |
| 		if (br->monitor != 'A' && br->monitor != -1 && br->monitor != bar->mon->num)
 | |
| 			continue;
 | |
| 		if (bar->x[r] > ev->x || ev->x > bar->x[r] + bar->w[r])
 | |
| 			continue;
 | |
| 
 | |
| 		barg.x = ev->x - bar->x[r];
 | |
| 		barg.y = ev->y - bar->borderpx;
 | |
| 		barg.w = bar->w[r];
 | |
| 		barg.h = bar->bh - 2 * bar->borderpx;
 | |
| 
 | |
| 		br->hoverfunc(bar, &barg, ev);
 | |
| 		break;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| Bar *
 | |
| wintobar(Window win)
 | |
| {
 | |
| 	Monitor *m;
 | |
| 	Bar *bar;
 | |
| 	for (m = mons; m; m = m->next)
 | |
| 		for (bar = m->bar; bar; bar = bar->next)
 | |
| 			if (bar->win == win)
 | |
| 				return bar;
 | |
| 	return NULL;
 | |
| }
 |