@ -459,6 +459,7 @@ weston_wm_handle_configure_notify(struct weston_wm *wm, xcb_generic_event_t *eve 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						xcb_configure_notify_event_t  * configure_notify  =  
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							( xcb_configure_notify_event_t  * )  event ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						struct  weston_wm_window  * window ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						int  x ,  y ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						window  =  hash_table_lookup ( wm - > window_hash ,  configure_notify - > window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -467,6 +468,14 @@ weston_wm_handle_configure_notify(struct weston_wm *wm, xcb_generic_event_t *eve 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							configure_notify - > window ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							configure_notify - > x ,  configure_notify - > y ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							configure_notify - > width ,  configure_notify - > height ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						/* resize falls here */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						if  ( configure_notify - > window  ! =  window - > id )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						weston_wm_window_get_child_position ( window ,  & x ,  & y ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						window - > x  =  configure_notify - > x  -  x ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						window - > y  =  configure_notify - > y  -  y ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1553,6 +1562,7 @@ xserver_map_shell_surface(struct weston_wm *wm, 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							& wm - > server - > compositor - > shell_interface ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						struct  weston_wm_window  * parent ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						struct  theme  * t  =  window - > wm - > theme ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						int  x  =  0 ,  y  =  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						if  ( ! shell_interface - > create_shell_surface )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1569,9 +1579,16 @@ xserver_map_shell_surface(struct weston_wm *wm, 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						parent  =  hash_table_lookup ( wm - > window_hash ,  window - > transient_for - > id ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						/* non-decorated and non-toplevel windows, e.g. sub-menus */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						if  ( ! parent - > decorate  & &  parent - > override_redirect )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							x  =  parent - > x  +  t - > margin ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							y  =  parent - > y  +  t - > margin ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						shell_interface - > set_transient ( window - > shsurf ,  parent - > surface ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									       window - > x  -  parent - > x  +  t - > margin  +  t - > width ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									       window - > y  -  parent - > y  +  t - > margin  +  t - > titlebar_height ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									       window - > x  +  t - > margin  -  x ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									       window - > y  +  t - > margin  -  y ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									       WL_SHELL_SURFACE_TRANSIENT_INACTIVE ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}