@ -53,11 +53,10 @@ bool move_focus(enum movement_direction direction) {
 
			
		
	
		
		
			
				
					
						view  =  get_swayc_in_direction ( view ,  direction ) ; 
	view  =  get_swayc_in_direction ( view ,  direction ) ; 
 
			
		
	
		
		
			
				
					
						if  ( view )  { 
	if  ( view )  { 
 
			
		
	
		
		
			
				
					
							if  ( direction  = =  MOVE_PARENT )  { 
		if  ( direction  = =  MOVE_PARENT )  { 
 
			
		
	
		
		
			
				
					
								set_focused_container ( view ) ; 
			return  set_focused_container ( view ) ; 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
							}  else  { 
		}  else  { 
 
			
		
	
		
		
			
				
					
								set_focused_container ( get_focused_view ( view ) ) ; 
			return  set_focused_container ( get_focused_view ( view ) ) ; 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
							} 
		} 
 
			
		
	
		
		
			
				
					
							return  true ; 
 
			
		
	
		
		
			
				
					
						} 
	} 
 
			
		
	
		
		
			
				
					
						return  false ; 
	return  false ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -73,9 +72,9 @@ swayc_t *get_focused_container(swayc_t *parent) {
 
			
		
	
		
		
			
				
					
						return  parent ; 
	return  parent ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					void  set_focused_container ( swayc_t  * c )  { bool  set_focused_container ( swayc_t  * c )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
						if  ( locked_container_focus  | |  ! c )  { 
	if  ( locked_container_focus  | |  ! c )  { 
 
			
		
	
		
		
			
				
					
							return ; 
		return  false  ; 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
						} 
	} 
 
			
		
	
		
		
			
				
					
						sway_log ( L_DEBUG ,  " Setting focus to %p:%ld " ,  c ,  c - > handle ) ; 
	sway_log ( L_DEBUG ,  " Setting focus to %p:%ld " ,  c ,  c - > handle ) ; 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -84,7 +83,7 @@ void set_focused_container(swayc_t *c) {
 
			
		
	
		
		
			
				
					
						swayc_t  * focused  =  get_focused_view ( workspace ) ; 
	swayc_t  * focused  =  get_focused_view ( workspace ) ; 
 
			
		
	
		
		
			
				
					
						// if the workspace we are changing focus to has a fullscreen view return
 
	// if the workspace we are changing focus to has a fullscreen view return
 
 
			
		
	
		
		
			
				
					
						if  ( swayc_is_fullscreen ( focused )  & &  focused  ! =  c )  { 
	if  ( swayc_is_fullscreen ( focused )  & &  focused  ! =  c )  { 
 
			
		
	
		
		
			
				
					
							return ; 
		return  false  ; 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
						} 
	} 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
						// update container focus from here to root, making necessary changes along
 
	// update container focus from here to root, making necessary changes along
 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -115,17 +114,18 @@ void set_focused_container(swayc_t *c) {
 
			
		
	
		
		
			
				
					
								} 
			} 
 
			
		
	
		
		
			
				
					
							} 
		} 
 
			
		
	
		
		
			
				
					
						} 
	} 
 
			
		
	
		
		
			
				
					
						return  true ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					void  set_focused_container_for ( swayc_t  * a ,  swayc_t  * c )  { bool  set_focused_container_for ( swayc_t  * a ,  swayc_t  * c )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
						if  ( locked_container_focus  | |  ! c )  { 
	if  ( locked_container_focus  | |  ! c )  { 
 
			
		
	
		
		
			
				
					
							return ; 
		return  false  ; 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
						} 
	} 
 
			
		
	
		
		
			
				
					
						swayc_t  * find  =  c ; 
	swayc_t  * find  =  c ; 
 
			
		
	
		
		
			
				
					
						// Ensure that a is an ancestor of c
 
	// Ensure that a is an ancestor of c
 
 
			
		
	
		
		
			
				
					
						while  ( find  ! =  a  & &  ( find  =  find - > parent ) )  { 
	while  ( find  ! =  a  & &  ( find  =  find - > parent ) )  { 
 
			
		
	
		
		
			
				
					
							if  ( find  = =  & root_container )  { 
		if  ( find  = =  & root_container )  { 
 
			
		
	
		
		
			
				
					
								return ; 
			return  false  ; 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
							} 
		} 
 
			
		
	
		
		
			
				
					
						} 
	} 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -134,7 +134,7 @@ void set_focused_container_for(swayc_t *a, swayc_t *c) {
 
			
		
	
		
		
			
				
					
						swayc_t  * focused  =  get_focused_view ( workspace ) ; 
	swayc_t  * focused  =  get_focused_view ( workspace ) ; 
 
			
		
	
		
		
			
				
					
						// if the workspace we are changing focus to has a fullscreen view return
 
	// if the workspace we are changing focus to has a fullscreen view return
 
 
			
		
	
		
		
			
				
					
						if  ( swayc_is_fullscreen ( focused )  & &  c  ! =  focused )  { 
	if  ( swayc_is_fullscreen ( focused )  & &  c  ! =  focused )  { 
 
			
		
	
		
		
			
				
					
							return ; 
		return  false  ; 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
						} 
	} 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
						// Check if we changing a parent container that will see chnage
 
	// Check if we changing a parent container that will see chnage
 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -147,8 +147,7 @@ void set_focused_container_for(swayc_t *a, swayc_t *c) {
 
			
		
	
		
		
			
				
					
						} 
	} 
 
			
		
	
		
		
			
				
					
						if  ( effective )  { 
	if  ( effective )  { 
 
			
		
	
		
		
			
				
					
							// Go to set_focused_container
 
		// Go to set_focused_container
 
 
			
		
	
		
		
			
				
					
							set_focused_container ( c ) ; 
		return  set_focused_container ( c ) ; 
 
			
				
				
			
		
	
		
		
			
				
					
							return ; 
 
			
		
	
		
		
	
		
		
			
				
					
						} 
	} 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
						sway_log ( L_DEBUG ,  " Setting focus for %p:%ld to %p:%ld " , 
	sway_log ( L_DEBUG ,  " Setting focus for %p:%ld to %p:%ld " , 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -161,6 +160,7 @@ void set_focused_container_for(swayc_t *a, swayc_t *c) {
 
			
		
	
		
		
			
				
					
							p  =  p - > parent ; 
		p  =  p - > parent ; 
 
			
		
	
		
		
			
				
					
							p - > is_focused  =  false ; 
		p - > is_focused  =  false ; 
 
			
		
	
		
		
			
				
					
						} 
	} 
 
			
		
	
		
		
			
				
					
						return  true ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					swayc_t  * get_focused_view ( swayc_t  * parent )  { swayc_t  * get_focused_view ( swayc_t  * parent )  {