@ -361,6 +361,8 @@ shell_destroy(struct wl_listener *listener, void *data) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						text_backend_destroy ( shell - > text_backend ) ;   
					 
					 
					 
						text_backend_destroy ( shell - > text_backend ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						input_panel_destroy ( shell ) ;   
					 
					 
					 
						input_panel_destroy ( shell ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						wl_list_remove ( & shell - > wake_listener . link ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						wl_list_for_each_safe ( ivisurf ,  next ,  & shell - > ivi_surface_list ,  link )  {   
					 
					 
					 
						wl_list_for_each_safe ( ivisurf ,  next ,  & shell - > ivi_surface_list ,  link )  {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							wl_list_remove ( & ivisurf - > link ) ;   
					 
					 
					 
							wl_list_remove ( & ivisurf - > link ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							free ( ivisurf ) ;   
					 
					 
					 
							free ( ivisurf ) ;   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -369,6 +371,17 @@ shell_destroy(struct wl_listener *listener, void *data) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						free ( shell ) ;   
					 
					 
					 
						free ( shell ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					/*
  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					 *  Called  through  the  compositor ' s  wake  signal .   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					 */   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					static  void  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					wake_handler ( struct  wl_listener  * listener ,  void  * data )  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					{  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						struct  weston_compositor  * compositor  =  data ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						weston_compositor_damage_all ( compositor ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					static  void  
					 
					 
					 
					static  void  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					terminate_binding ( struct  weston_keyboard  * keyboard ,  const  struct  timespec  * time ,  
					 
					 
					 
					terminate_binding ( struct  weston_keyboard  * keyboard ,  const  struct  timespec  * time ,  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							  uint32_t  key ,  void  * data )   
					 
					 
					 
							  uint32_t  key ,  void  * data )   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -480,6 +493,9 @@ wet_shell_init(struct weston_compositor *compositor, 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						shell - > destroy_listener . notify  =  shell_destroy ;   
					 
					 
					 
						shell - > destroy_listener . notify  =  shell_destroy ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						wl_signal_add ( & compositor - > destroy_signal ,  & shell - > destroy_listener ) ;   
					 
					 
					 
						wl_signal_add ( & compositor - > destroy_signal ,  & shell - > destroy_listener ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						shell - > wake_listener . notify  =  wake_handler ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						wl_signal_add ( & compositor - > wake_signal ,  & shell - > wake_listener ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						if  ( input_panel_setup ( shell )  <  0 )   
					 
					 
					 
						if  ( input_panel_setup ( shell )  <  0 )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							goto  out ;   
					 
					 
					 
							goto  out ;