@ -103,6 +103,8 @@ static void free_config(struct sway_config *config) {
 
			
		
	
		
		
			
				
					
							free_output_config ( config - > output_configs - > items [ i ] ) ; 
		free_output_config ( config - > output_configs - > items [ i ] ) ; 
 
			
		
	
		
		
			
				
					
						} 
	} 
 
			
		
	
		
		
			
				
					
						list_free ( config - > output_configs ) ; 
	list_free ( config - > output_configs ) ; 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
						list_free ( config - > active_bar_modifiers ) ; 
 
			
		
	
		
		
			
				
					
						free ( config ) ; 
	free ( config ) ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -145,6 +147,33 @@ static void config_defaults(struct sway_config *config) {
 
			
		
	
		
		
			
				
					
						config - > edge_gaps  =  true ; 
	config - > edge_gaps  =  true ; 
 
			
		
	
		
		
			
				
					
						config - > gaps_inner  =  0 ; 
	config - > gaps_inner  =  0 ; 
 
			
		
	
		
		
			
				
					
						config - > gaps_outer  =  0 ; 
	config - > gaps_outer  =  0 ; 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
						config - > active_bar_modifiers  =  create_list ( ) ; 
 
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					static  int  compare_modifiers ( const  void  * left ,  const  void  * right )  {  
			
		
	
		
		
			
				
					
						uint32_t  a  =  * ( uint32_t  * ) left ; 
 
			
		
	
		
		
			
				
					
						uint32_t  b  =  * ( uint32_t  * ) right ; 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
						return  a  -  b ; 
 
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					void  update_active_bar_modifiers ( )  {  
			
		
	
		
		
			
				
					
						if  ( config - > active_bar_modifiers - > length  >  0 )  { 
 
			
		
	
		
		
			
				
					
							list_free ( config - > active_bar_modifiers ) ; 
 
			
		
	
		
		
			
				
					
							config - > active_bar_modifiers  =  create_list ( ) ; 
 
			
		
	
		
		
			
				
					
						} 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
						struct  bar_config  * bar ; 
 
			
		
	
		
		
			
				
					
						int  i ; 
 
			
		
	
		
		
			
				
					
						for  ( i  =  0 ;  i  <  config - > bars - > length ;  + + i )  { 
 
			
		
	
		
		
			
				
					
							bar  =  config - > bars - > items [ i ] ; 
 
			
		
	
		
		
			
				
					
							if  ( strcmp ( bar - > mode ,  " hide " )  = =  0  & &  strcmp ( bar - > hidden_state ,  " hide " )  = =  0 )  { 
 
			
		
	
		
		
			
				
					
								if  ( list_seq_find ( config - > active_bar_modifiers ,  compare_modifiers ,  & bar - > modifier )  <  0 )  { 
 
			
		
	
		
		
			
				
					
									list_add ( config - > active_bar_modifiers ,  & bar - > modifier ) ; 
 
			
		
	
		
		
			
				
					
								} 
 
			
		
	
		
		
			
				
					
							} 
 
			
		
	
		
		
			
				
					
						} 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					static  char  * get_config_path ( void )  { static  char  * get_config_path ( void )  {  
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -215,6 +244,8 @@ bool load_config(const char *file) {
 
			
		
	
		
		
			
				
					
						} 
	} 
 
			
		
	
		
		
			
				
					
						fclose ( f ) ; 
	fclose ( f ) ; 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
						update_active_bar_modifiers ( ) ; 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
						return  config_load_success ; 
	return  config_load_success ; 
 
			
		
	
		
		
			
				
					
					} }