|  |  |  | @ -288,6 +288,19 @@ swayc_t *swayc_at(swayc_t *parent, double lx, double ly, | 
			
		
	
		
			
				
					|  |  |  |  | 					break; | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			// check for subsurfaces
 | 
			
		
	
		
			
				
					|  |  |  |  | 			double sub_x, sub_y; | 
			
		
	
		
			
				
					|  |  |  |  | 			struct wlr_subsurface *subsurface = | 
			
		
	
		
			
				
					|  |  |  |  | 				wlr_surface_subsurface_at(sview->surface, | 
			
		
	
		
			
				
					|  |  |  |  | 						view_sx, view_sy, &sub_x, &sub_y); | 
			
		
	
		
			
				
					|  |  |  |  | 			if (subsurface) { | 
			
		
	
		
			
				
					|  |  |  |  | 				*sx = view_sx - sub_x; | 
			
		
	
		
			
				
					|  |  |  |  | 				*sy = view_sy - sub_y; | 
			
		
	
		
			
				
					|  |  |  |  | 				*surface = subsurface->surface; | 
			
		
	
		
			
				
					|  |  |  |  | 				list_free(queue); | 
			
		
	
		
			
				
					|  |  |  |  | 				return swayc; | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			if (view_sx > 0 && view_sx < width && | 
			
		
	
		
			
				
					|  |  |  |  | 					view_sy > 0 && view_sy < height && | 
			
		
	
		
			
				
					|  |  |  |  | 					pixman_region32_contains_point( | 
			
		
	
	
		
			
				
					|  |  |  | 
 |