mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05:00 
			
		
		
		
	Merge pull request #2994 from RyanDwyer/respect-lone-child-border
Respect border settings when rendering lone tabbed/stacked child
This commit is contained in:
		
						commit
						25a8f7dcb8
					
				
					 2 changed files with 18 additions and 11 deletions
				
			
		| 
						 | 
					@ -781,6 +781,13 @@ static void render_containers_stacked(struct sway_output *output,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void render_containers(struct sway_output *output,
 | 
					static void render_containers(struct sway_output *output,
 | 
				
			||||||
		pixman_region32_t *damage, struct parent_data *parent) {
 | 
							pixman_region32_t *damage, struct parent_data *parent) {
 | 
				
			||||||
 | 
						if (parent->children->length == 1) {
 | 
				
			||||||
 | 
							struct sway_container *child = parent->children->items[0];
 | 
				
			||||||
 | 
							if (child->view) {
 | 
				
			||||||
 | 
								render_containers_linear(output, damage, parent);
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	switch (parent->layout) {
 | 
						switch (parent->layout) {
 | 
				
			||||||
	case L_NONE:
 | 
						case L_NONE:
 | 
				
			||||||
	case L_HORIZ:
 | 
						case L_HORIZ:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -242,23 +242,23 @@ void view_autoconfigure(struct sway_view *view) {
 | 
				
			||||||
		view->border_bottom = bottom_y != ws->y + ws->height;
 | 
							view->border_bottom = bottom_y != ws->y + ws->height;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	double x, y, width, height;
 | 
					 | 
				
			||||||
	x = y = width = height = 0;
 | 
					 | 
				
			||||||
	double y_offset = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// In a tabbed or stacked container, the container's y is the top of the
 | 
						// In a tabbed or stacked container, the container's y is the top of the
 | 
				
			||||||
	// title area. We have to offset the surface y by the height of the title,
 | 
						// title area. We have to offset the surface y by the height of the title,
 | 
				
			||||||
	// bar, and disable any top border because we'll always have the title bar.
 | 
						// bar, and disable any top border because we'll always have the title bar.
 | 
				
			||||||
 | 
						double y_offset = 0;
 | 
				
			||||||
	enum sway_container_layout layout = container_parent_layout(con);
 | 
						enum sway_container_layout layout = container_parent_layout(con);
 | 
				
			||||||
	if (layout == L_TABBED && !container_is_floating(con)) {
 | 
						list_t *siblings = container_get_siblings(con);
 | 
				
			||||||
 | 
						if (siblings->length > 1 && !container_is_floating(con)) {
 | 
				
			||||||
 | 
							if (layout == L_TABBED) {
 | 
				
			||||||
			y_offset = container_titlebar_height();
 | 
								y_offset = container_titlebar_height();
 | 
				
			||||||
			view->border_top = false;
 | 
								view->border_top = false;
 | 
				
			||||||
	} else if (layout == L_STACKED && !container_is_floating(con)) {
 | 
							} else if (layout == L_STACKED) {
 | 
				
			||||||
		list_t *siblings = container_get_siblings(con);
 | 
					 | 
				
			||||||
			y_offset = container_titlebar_height() * siblings->length;
 | 
								y_offset = container_titlebar_height() * siblings->length;
 | 
				
			||||||
			view->border_top = false;
 | 
								view->border_top = false;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						double x, y, width, height = 0;
 | 
				
			||||||
	switch (view->border) {
 | 
						switch (view->border) {
 | 
				
			||||||
	case B_CSD:
 | 
						case B_CSD:
 | 
				
			||||||
	case B_NONE:
 | 
						case B_NONE:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue