|  |  |  | @ -252,6 +252,7 @@ void swap_geometry(swayc_t *a, swayc_t *b) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | void move_container(swayc_t *container, enum movement_direction dir) { | 
			
		
	
		
			
				
					|  |  |  |  | 	enum swayc_layouts layout = L_NONE; | 
			
		
	
		
			
				
					|  |  |  |  | 	swayc_t *parent = container->parent; | 
			
		
	
		
			
				
					|  |  |  |  | 	if (container->is_floating | 
			
		
	
		
			
				
					|  |  |  |  | 			|| (container->type != C_VIEW && container->type != C_CONTAINER)) { | 
			
		
	
		
			
				
					|  |  |  |  | 		return; | 
			
		
	
	
		
			
				
					|  |  |  | @ -260,10 +261,23 @@ void move_container(swayc_t *container, enum movement_direction dir) { | 
			
		
	
		
			
				
					|  |  |  |  | 		layout = L_VERT; | 
			
		
	
		
			
				
					|  |  |  |  | 	} else if (dir == MOVE_LEFT || dir == MOVE_RIGHT) { | 
			
		
	
		
			
				
					|  |  |  |  | 		layout = L_HORIZ; | 
			
		
	
		
			
				
					|  |  |  |  | 	} else if (dir == MOVE_FIRST) { | 
			
		
	
		
			
				
					|  |  |  |  | 		// swap first child in auto layout with currently focused child
 | 
			
		
	
		
			
				
					|  |  |  |  | 		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); | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 			arrange_windows(parent->parent, -1, -1); | 
			
		
	
		
			
				
					|  |  |  |  | 			ipc_event_window(container, "move"); | 
			
		
	
		
			
				
					|  |  |  |  | 			set_focused_container_for(parent->parent, container); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		return; | 
			
		
	
		
			
				
					|  |  |  |  | 	} else if (! (dir == MOVE_NEXT || dir == MOVE_PREV)) { | 
			
		
	
		
			
				
					|  |  |  |  | 		return; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	swayc_t *parent = container->parent; | 
			
		
	
		
			
				
					|  |  |  |  | 	swayc_t *child = container; | 
			
		
	
		
			
				
					|  |  |  |  | 	bool ascended = false; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |