mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05:00 
			
		
		
		
	Fix moving out of a tabbed/stacked workspace
This commit is contained in:
		
							parent
							
								
									a66fd74a54
								
							
						
					
					
						commit
						103a302fa4
					
				
					 1 changed files with 14 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -313,16 +313,25 @@ static void move_out_of_tabs_stacks(struct sway_container *container,
 | 
			
		|||
		struct sway_container *current, enum movement_direction move_dir,
 | 
			
		||||
		int offs) {
 | 
			
		||||
	wlr_log(L_DEBUG, "Moving out of tab/stack into a split");
 | 
			
		||||
	bool is_workspace = current->parent->type == C_WORKSPACE;
 | 
			
		||||
	struct sway_container *old_parent = current->parent->parent;
 | 
			
		||||
	struct sway_container *new_parent = container_split(current->parent,
 | 
			
		||||
		move_dir == MOVE_LEFT || move_dir == MOVE_RIGHT ? L_HORIZ : L_VERT);
 | 
			
		||||
	if (is_workspace) {
 | 
			
		||||
		container_insert_child(new_parent->parent, container, offs < 0 ? 0 : 1);
 | 
			
		||||
	} else {
 | 
			
		||||
		container_insert_child(new_parent, container, offs < 0 ? 0 : 1);
 | 
			
		||||
		container_reap_empty_recursive(new_parent->parent);
 | 
			
		||||
		container_flatten(new_parent->parent);
 | 
			
		||||
	wl_signal_emit(¤t->events.reparent, old_parent);
 | 
			
		||||
	}
 | 
			
		||||
	wl_signal_emit(&container->events.reparent, old_parent);
 | 
			
		||||
	container_create_notify(new_parent);
 | 
			
		||||
	if (is_workspace) {
 | 
			
		||||
		arrange_workspace(new_parent->parent);
 | 
			
		||||
	} else {
 | 
			
		||||
		arrange_children_of(new_parent);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void container_move(struct sway_container *container,
 | 
			
		||||
		enum movement_direction move_dir, int move_amt) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue