|  |  |  | @ -312,9 +312,8 @@ static void send_frame_done_container_iterator(struct sway_container *con, | 
			
		
	
		
			
				
					|  |  |  |  | 		return; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	// Toplevels only
 | 
			
		
	
		
			
				
					|  |  |  |  | 	output_surface_for_each_surface(data->output, con->sway_view->surface, | 
			
		
	
		
			
				
					|  |  |  |  | 		con->x, con->y, send_frame_done_iterator, data->when); | 
			
		
	
		
			
				
					|  |  |  |  | 	output_view_for_each_surface(data->output, con->sway_view, | 
			
		
	
		
			
				
					|  |  |  |  | 		send_frame_done_iterator, data->when); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | static void send_frame_done_container(struct sway_output *output, | 
			
		
	
	
		
			
				
					|  |  |  | @ -327,27 +326,6 @@ static void send_frame_done_container(struct sway_output *output, | 
			
		
	
		
			
				
					|  |  |  |  | 		send_frame_done_container_iterator, &data); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | static void send_frame_done_popup_iterator(struct sway_output *output, | 
			
		
	
		
			
				
					|  |  |  |  | 		struct wlr_surface *surface, struct wlr_box *box, float rotation, | 
			
		
	
		
			
				
					|  |  |  |  | 		void *data) { | 
			
		
	
		
			
				
					|  |  |  |  | 	// Send frame done to this popup's surface
 | 
			
		
	
		
			
				
					|  |  |  |  | 	send_frame_done_iterator(output, surface, box, rotation, data); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	// Send frame done to this popup's child toplevels
 | 
			
		
	
		
			
				
					|  |  |  |  | 	output_surface_for_each_surface(output, surface, box->x, box->y, | 
			
		
	
		
			
				
					|  |  |  |  | 			send_frame_done_iterator, data); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | static void send_frame_done_popups(struct sway_output *output, | 
			
		
	
		
			
				
					|  |  |  |  | 		struct sway_view *view, struct timespec *when) { | 
			
		
	
		
			
				
					|  |  |  |  | 	struct send_frame_done_data data = { | 
			
		
	
		
			
				
					|  |  |  |  | 		.output = output, | 
			
		
	
		
			
				
					|  |  |  |  | 		.when = when, | 
			
		
	
		
			
				
					|  |  |  |  | 	}; | 
			
		
	
		
			
				
					|  |  |  |  | 	output_view_for_each_popup(output, view, | 
			
		
	
		
			
				
					|  |  |  |  | 			send_frame_done_popup_iterator, &data); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | static void send_frame_done(struct sway_output *output, struct timespec *when) { | 
			
		
	
		
			
				
					|  |  |  |  | 	if (output_has_opaque_overlay_layer_surface(output)) { | 
			
		
	
		
			
				
					|  |  |  |  | 		goto send_frame_overlay; | 
			
		
	
	
		
			
				
					|  |  |  | @ -385,13 +363,6 @@ static void send_frame_done(struct sway_output *output, struct timespec *when) { | 
			
		
	
		
			
				
					|  |  |  |  | 			&output->layers[ZWLR_LAYER_SHELL_V1_LAYER_TOP], when); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	struct sway_seat *seat = input_manager_current_seat(input_manager); | 
			
		
	
		
			
				
					|  |  |  |  | 	struct sway_container *focus = seat_get_focus(seat); | 
			
		
	
		
			
				
					|  |  |  |  | 	if (focus && focus->type == C_VIEW) { | 
			
		
	
		
			
				
					|  |  |  |  | 		send_frame_done_popups(output, focus->sway_view, when); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | send_frame_overlay: | 
			
		
	
		
			
				
					|  |  |  |  | 	send_frame_done_layer(output, | 
			
		
	
		
			
				
					|  |  |  |  | 		&output->layers[ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY], when); | 
			
		
	
	
		
			
				
					|  |  |  | 
 |