mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05:00 
			
		
		
		
	Use L_FLOATING instead of reapable boolean
This commit is contained in:
		
							parent
							
								
									1f2e399ade
								
							
						
					
					
						commit
						34f35f0bad
					
				
					 5 changed files with 14 additions and 7 deletions
				
			
		| 
						 | 
					@ -40,6 +40,7 @@ enum sway_container_layout {
 | 
				
			||||||
	L_VERT,
 | 
						L_VERT,
 | 
				
			||||||
	L_STACKED,
 | 
						L_STACKED,
 | 
				
			||||||
	L_TABBED,
 | 
						L_TABBED,
 | 
				
			||||||
 | 
						L_FLOATING,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum sway_container_border {
 | 
					enum sway_container_border {
 | 
				
			||||||
| 
						 | 
					@ -75,10 +76,6 @@ struct sway_container {
 | 
				
			||||||
	enum sway_container_layout layout;
 | 
						enum sway_container_layout layout;
 | 
				
			||||||
	enum sway_container_layout prev_layout;
 | 
						enum sway_container_layout prev_layout;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Allow the container to be automatically removed if it's empty. True by
 | 
					 | 
				
			||||||
	// default, false for the magic floating container that each workspace has.
 | 
					 | 
				
			||||||
	bool reapable;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// Saves us from searching the list of children/floating in the parent
 | 
						// Saves us from searching the list of children/floating in the parent
 | 
				
			||||||
	bool is_floating;
 | 
						bool is_floating;
 | 
				
			||||||
	bool is_sticky;
 | 
						bool is_sticky;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -754,6 +754,8 @@ static void render_container(struct sway_output *output,
 | 
				
			||||||
	case L_TABBED:
 | 
						case L_TABBED:
 | 
				
			||||||
		render_container_tabbed(output, damage, con, parent_focused);
 | 
							render_container_tabbed(output, damage, con, parent_focused);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
 | 
						case L_FLOATING:
 | 
				
			||||||
 | 
							sway_assert(false, "Didn't expect to see floating here");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,6 +22,8 @@ static const char *ipc_json_layout_description(enum sway_container_layout l) {
 | 
				
			||||||
		return "tabbed";
 | 
							return "tabbed";
 | 
				
			||||||
	case L_STACKED:
 | 
						case L_STACKED:
 | 
				
			||||||
		return "stacked";
 | 
							return "stacked";
 | 
				
			||||||
 | 
						case L_FLOATING:
 | 
				
			||||||
 | 
							return "floating";
 | 
				
			||||||
	case L_NONE:
 | 
						case L_NONE:
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -123,7 +123,6 @@ struct sway_container *container_create(enum sway_container_type type) {
 | 
				
			||||||
	c->layout = L_NONE;
 | 
						c->layout = L_NONE;
 | 
				
			||||||
	c->type = type;
 | 
						c->type = type;
 | 
				
			||||||
	c->alpha = 1.0f;
 | 
						c->alpha = 1.0f;
 | 
				
			||||||
	c->reapable = true;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (type != C_VIEW) {
 | 
						if (type != C_VIEW) {
 | 
				
			||||||
		c->children = create_list();
 | 
							c->children = create_list();
 | 
				
			||||||
| 
						 | 
					@ -280,7 +279,8 @@ static void container_root_finish(struct sway_container *con) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool container_reap_empty(struct sway_container *con) {
 | 
					bool container_reap_empty(struct sway_container *con) {
 | 
				
			||||||
	if (!con->reapable) {
 | 
						if (con->layout == L_FLOATING) {
 | 
				
			||||||
 | 
							// Don't reap the magical floating container that each workspace has
 | 
				
			||||||
		return false;
 | 
							return false;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	switch (con->type) {
 | 
						switch (con->type) {
 | 
				
			||||||
| 
						 | 
					@ -618,6 +618,9 @@ struct sway_container *container_at(struct sway_container *parent,
 | 
				
			||||||
		return container_at_tabbed(parent, ox, oy, surface, sx, sy);
 | 
							return container_at_tabbed(parent, ox, oy, surface, sx, sy);
 | 
				
			||||||
	case L_STACKED:
 | 
						case L_STACKED:
 | 
				
			||||||
		return container_at_stacked(parent, ox, oy, surface, sx, sy);
 | 
							return container_at_stacked(parent, ox, oy, surface, sx, sy);
 | 
				
			||||||
 | 
						case L_FLOATING:
 | 
				
			||||||
 | 
							sway_assert(false, "Didn't expect to see floating here");
 | 
				
			||||||
 | 
							return NULL;
 | 
				
			||||||
	case L_NONE:
 | 
						case L_NONE:
 | 
				
			||||||
		return NULL;
 | 
							return NULL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -842,6 +845,9 @@ static size_t get_tree_representation(struct sway_container *parent, char *buffe
 | 
				
			||||||
	case L_STACKED:
 | 
						case L_STACKED:
 | 
				
			||||||
		lenient_strcat(buffer, "S[");
 | 
							lenient_strcat(buffer, "S[");
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
 | 
						case L_FLOATING:
 | 
				
			||||||
 | 
							strcpy(buffer, "F[");
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
	case L_NONE:
 | 
						case L_NONE:
 | 
				
			||||||
		lenient_strcat(buffer, "D[");
 | 
							lenient_strcat(buffer, "D[");
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -67,7 +67,7 @@ struct sway_container *workspace_create(struct sway_container *output,
 | 
				
			||||||
	swayws->swayc = workspace;
 | 
						swayws->swayc = workspace;
 | 
				
			||||||
	swayws->floating = container_create(C_CONTAINER);
 | 
						swayws->floating = container_create(C_CONTAINER);
 | 
				
			||||||
	swayws->floating->parent = swayws->swayc;
 | 
						swayws->floating->parent = swayws->swayc;
 | 
				
			||||||
	swayws->floating->reapable = false;
 | 
						swayws->floating->layout = L_FLOATING;
 | 
				
			||||||
	workspace->sway_workspace = swayws;
 | 
						workspace->sway_workspace = swayws;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	container_add_child(output, workspace);
 | 
						container_add_child(output, workspace);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue