warp: do not warp if force_warp = 1 and mouse cursor is on a bar
This commit is contained in:
		
							
								
								
									
										35
									
								
								patch/warp.c
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								patch/warp.c
									
									
									
									
									
								
							| @@ -13,24 +13,25 @@ warp(const Client *c) | |||||||
| 		return; | 		return; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if (!force_warp) { | 	if (!getrootptr(&x, &y)) | ||||||
| 		if (!getrootptr(&x, &y) || | 		return; | ||||||
| 			(x > c->x - c->bw && |  | ||||||
| 			 y > c->y - c->bw && |  | ||||||
| 			 x < c->x + c->w + c->bw*2 && |  | ||||||
| 			 y < c->y + c->h + c->bw*2) |  | ||||||
| 		) |  | ||||||
| 			return; |  | ||||||
|  |  | ||||||
| 		for (m = mons; m; m = m->next) | 	if (!force_warp && | ||||||
| 			for (bar = m->bar; bar; bar = bar->next) | 		(x > c->x - c->bw && | ||||||
| 				if (x > bar->bx && | 		 y > c->y - c->bw && | ||||||
| 					x < bar->bx + bar->bw && | 		 x < c->x + c->w + c->bw*2 && | ||||||
| 					y > bar->by && | 		 y < c->y + c->h + c->bw*2)) | ||||||
| 					y < bar->by + bar->bh) | 		return; | ||||||
| 					return; |  | ||||||
| 	} else | 	force_warp = 0; | ||||||
| 		force_warp = 0; |  | ||||||
|  | 	for (m = mons; m; m = m->next) | ||||||
|  | 		for (bar = m->bar; bar; bar = bar->next) | ||||||
|  | 			if (x > bar->bx && | ||||||
|  | 				x < bar->bx + bar->bw && | ||||||
|  | 				y > bar->by && | ||||||
|  | 				y < bar->by + bar->bh) | ||||||
|  | 				return; | ||||||
|  |  | ||||||
| 	XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2); | 	XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2); | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user