@ -56,24 +56,12 @@ struct cmd_results *cmd_layout(int argc, char **argv) {
 
			
		
	
		
			
				
									swayc_change_layout ( parent ,  L_HORIZ ) ; 
 
			
		
	
		
			
				
								} 
 
			
		
	
		
			
				
							}  else  if  ( strcasecmp ( argv [ 0 ] ,  " auto_left " )  = =  0 )  { 
 
			
		
	
		
			
				
								if  ( parent - > type  ! =  C_CONTAINER  & &  ! swayc_is_empty_workspace ( parent ) ) { 
 
			
		
	
		
			
				
									parent  =  new_container ( parent ,  L_AUTO_LEFT ) ; 
 
			
		
	
		
			
				
								} 
 
			
		
	
		
			
				
								swayc_change_layout ( parent ,  L_AUTO_LEFT ) ; 
 
			
		
	
		
			
				
							}  else  if  ( strcasecmp ( argv [ 0 ] ,  " auto_right " )  = =  0 )  { 
 
			
		
	
		
			
				
								if  ( parent - > type  ! =  C_CONTAINER  & &  ! swayc_is_empty_workspace ( parent ) ) { 
 
			
		
	
		
			
				
									parent  =  new_container ( parent ,  L_AUTO_RIGHT ) ; 
 
			
		
	
		
			
				
								} 
 
			
		
	
		
			
				
								swayc_change_layout ( parent ,  L_AUTO_RIGHT ) ; 
 
			
		
	
		
			
				
							}  else  if  ( strcasecmp ( argv [ 0 ] ,  " auto_top " )  = =  0 )  { 
 
			
		
	
		
			
				
								if  ( parent - > type  ! =  C_CONTAINER  & &  ! swayc_is_empty_workspace ( parent ) ) { 
 
			
		
	
		
			
				
									parent  =  new_container ( parent ,  L_AUTO_TOP ) ; 
 
			
		
	
		
			
				
								} 
 
			
		
	
		
			
				
								swayc_change_layout ( parent ,  L_AUTO_TOP ) ; 
 
			
		
	
		
			
				
							}  else  if  ( strcasecmp ( argv [ 0 ] ,  " auto_bot " )  = =  0 )  { 
 
			
		
	
		
			
				
								if  ( parent - > type  ! =  C_CONTAINER  & &  ! swayc_is_empty_workspace ( parent ) ) { 
 
			
		
	
		
			
				
									parent  =  new_container ( parent ,  L_AUTO_BOTTOM ) ; 
 
			
		
	
		
			
				
								} 
 
			
		
	
		
			
				
								swayc_change_layout ( parent ,  L_AUTO_BOTTOM ) ; 
 
			
		
	
		
			
				
							}  else  if  ( strcasecmp ( argv [ 0 ] ,  " incnmaster " )  = =  0 )   { 
 
			
		
	
		
			
				
								if  ( ( error  =  checkarg ( argc ,  " layout incnmaster " , 
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -105,6 +93,42 @@ struct cmd_results *cmd_layout(int argc, char **argv) {
 
			
		
	
		
			
				
								    ( ( int ) container - > parent - > nb_slave_groups  +  inc  > =  1 ) )  { 
 
			
		
	
		
			
				
									container - > parent - > nb_slave_groups  + =  inc ; 
 
			
		
	
		
			
				
								} 
 
			
		
	
		
			
				
							}  else  if  ( strcasecmp ( argv [ 0 ] ,  " auto " )  = =  0 )  { 
 
			
		
	
		
			
				
								if  ( ( error  =  checkarg ( argc ,  " auto " ,  EXPECTED_EQUAL_TO ,  2 ) ) )  { 
 
			
		
	
		
			
				
									return  error ; 
 
			
		
	
		
			
				
								} 
 
			
		
	
		
			
				
								swayc_t  * container  =  get_focused_view ( swayc_active_workspace ( ) ) ; 
 
			
		
	
		
			
				
								swayc_t  * parent  =  container - > parent ; 
 
			
		
	
		
			
				
								enum  swayc_layouts  layout ; 
 
			
		
	
		
			
				
								if  ( strcasecmp ( argv [ 1 ] ,  " next " )  = =  0 )  { 
 
			
		
	
		
			
				
									if  ( is_auto_layout ( parent - > layout )  & &  parent - > layout  <  L_AUTO_LAST )  { 
 
			
		
	
		
			
				
										layout  =  parent - > layout  +  1 ; 
 
			
		
	
		
			
				
									}  else  { 
 
			
		
	
		
			
				
										layout  =  L_AUTO_FIRST ; 
 
			
		
	
		
			
				
									} 
 
			
		
	
		
			
				
								}  else  if  ( strcasecmp ( argv [ 1 ] ,  " prev " )  = =  0 )  { 
 
			
		
	
		
			
				
									if  ( is_auto_layout ( parent - > layout )  & &  parent - > layout  >  L_AUTO_FIRST )  { 
 
			
		
	
		
			
				
										layout  =  parent - > layout  -  1 ; 
 
			
		
	
		
			
				
									}  else  { 
 
			
		
	
		
			
				
										layout  =  L_AUTO_FIRST ; 
 
			
		
	
		
			
				
									} 
 
			
		
	
		
			
				
								}  else  { 
 
			
		
	
		
			
				
									return  cmd_results_new ( CMD_FAILURE ,  " layout auto " , 
 
			
		
	
		
			
				
											       " Must be one of <prev|next>. " ) ; 
 
			
		
	
		
			
				
								} 
 
			
		
	
		
			
				
								swayc_change_layout ( parent ,  layout ) ; 
 
			
		
	
		
			
				
							}  else  if  ( strcasecmp ( argv [ 0 ] ,  " promote " )  = =  0 )  { 
 
			
		
	
		
			
				
								// swap first child in auto layout with currently focused child
 
 
			
		
	
		
			
				
								swayc_t  * container  =  get_focused_view ( swayc_active_workspace ( ) ) ; 
 
			
		
	
		
			
				
								swayc_t  * parent  =  container - > parent ; 
 
			
		
	
		
			
				
								if  ( is_auto_layout ( parent - > layout ) )  { 
 
			
		
	
		
			
				
									int  focused_idx  =  index_child ( container ) ; 
 
			
		
	
		
			
				
									swayc_t  * first  =  parent - > children - > items [ 0 ] ; 
 
			
		
	
		
			
				
									if  ( focused_idx  >  0 )  { 
 
			
		
	
		
			
				
										list_swap ( parent - > children ,  0 ,  focused_idx ) ; 
 
			
		
	
		
			
				
										swap_geometry ( first ,  container ) ; 
 
			
		
	
		
			
				
									} 
 
			
		
	
		
			
				
								} 
 
			
		
	
		
			
				
							} 
 
			
		
	
		
			
				
						}