|  |  | @ -132,6 +132,12 @@ static void surface_set_input_region(struct wl_client *client, | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | static void wlr_surface_update_size(struct wlr_surface *surface, struct wlr_surface_state *state) { |  |  |  | static void wlr_surface_update_size(struct wlr_surface *surface, struct wlr_surface_state *state) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	if (!state->buffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		state->height = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		state->width = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		return; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	int scale = state->scale; |  |  |  | 	int scale = state->scale; | 
			
		
	
		
		
			
				
					
					|  |  |  | 	enum wl_output_transform transform = state->transform; |  |  |  | 	enum wl_output_transform transform = state->transform; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -342,6 +348,9 @@ static void wlr_surface_commit_pending(struct wlr_surface *surface) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 	int32_t oldh = surface->current->buffer_height; |  |  |  | 	int32_t oldh = surface->current->buffer_height; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	wlr_surface_move_state(surface, surface->pending, surface->current); |  |  |  | 	wlr_surface_move_state(surface, surface->pending, surface->current); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	if (!surface->current->buffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		surface->texture->valid = false; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	// commit subsurface order
 |  |  |  | 	// commit subsurface order
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	struct wlr_subsurface *subsurface; |  |  |  | 	struct wlr_subsurface *subsurface; | 
			
		
	
	
		
		
			
				
					|  |  | @ -445,9 +454,6 @@ static void surface_commit(struct wl_client *client, | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | void wlr_surface_flush_damage(struct wlr_surface *surface) { |  |  |  | void wlr_surface_flush_damage(struct wlr_surface *surface) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 	if (!surface->current->buffer) { |  |  |  | 	if (!surface->current->buffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if (surface->texture->valid) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 			// TODO: Detach buffers
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 		return; |  |  |  | 		return; | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 	struct wl_shm_buffer *buffer = wl_shm_buffer_get(surface->current->buffer); |  |  |  | 	struct wl_shm_buffer *buffer = wl_shm_buffer_get(surface->current->buffer); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |