mirror of
https://github.com/swaywm/sway.git
synced 2024-12-29 08:26:45 +01:00
Merge pull request #2236 from kupospelov/fix-stacked-layout
Fix title bar rendering for nested stacked containers
This commit is contained in:
commit
c1bb73f865
1 changed files with 11 additions and 7 deletions
|
@ -599,9 +599,11 @@ static void render_container_tabbed(struct sway_output *output,
|
||||||
struct border_colors *current_colors = &config->border_colors.unfocused;
|
struct border_colors *current_colors = &config->border_colors.unfocused;
|
||||||
struct sway_container_state *pstate = &con->current;
|
struct sway_container_state *pstate = &con->current;
|
||||||
|
|
||||||
|
int tab_width = pstate->swayc_width / pstate->children->length;
|
||||||
|
|
||||||
// Render tabs
|
// Render tabs
|
||||||
for (int i = 0; i < con->current.children->length; ++i) {
|
for (int i = 0; i < pstate->children->length; ++i) {
|
||||||
struct sway_container *child = con->current.children->items[i];
|
struct sway_container *child = pstate->children->items[i];
|
||||||
struct sway_view *view = child->type == C_VIEW ? child->sway_view : NULL;
|
struct sway_view *view = child->type == C_VIEW ? child->sway_view : NULL;
|
||||||
struct sway_container_state *cstate = &child->current;
|
struct sway_container_state *cstate = &child->current;
|
||||||
struct border_colors *colors;
|
struct border_colors *colors;
|
||||||
|
@ -622,8 +624,8 @@ static void render_container_tabbed(struct sway_output *output,
|
||||||
marks_texture = view ? view->marks_unfocused : NULL;
|
marks_texture = view ? view->marks_unfocused : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tab_width = pstate->swayc_width / pstate->children->length;
|
int x = cstate->swayc_x + tab_width * i;
|
||||||
int x = pstate->swayc_x + tab_width * i;
|
|
||||||
// Make last tab use the remaining width of the parent
|
// Make last tab use the remaining width of the parent
|
||||||
if (i == pstate->children->length - 1) {
|
if (i == pstate->children->length - 1) {
|
||||||
tab_width = pstate->swayc_width - tab_width * i;
|
tab_width = pstate->swayc_width - tab_width * i;
|
||||||
|
@ -663,9 +665,11 @@ static void render_container_stacked(struct sway_output *output,
|
||||||
struct border_colors *current_colors = &config->border_colors.unfocused;
|
struct border_colors *current_colors = &config->border_colors.unfocused;
|
||||||
struct sway_container_state *pstate = &con->current;
|
struct sway_container_state *pstate = &con->current;
|
||||||
|
|
||||||
|
size_t titlebar_height = container_titlebar_height();
|
||||||
|
|
||||||
// Render titles
|
// Render titles
|
||||||
for (int i = 0; i < con->current.children->length; ++i) {
|
for (int i = 0; i < pstate->children->length; ++i) {
|
||||||
struct sway_container *child = con->current.children->items[i];
|
struct sway_container *child = pstate->children->items[i];
|
||||||
struct sway_view *view = child->type == C_VIEW ? child->sway_view : NULL;
|
struct sway_view *view = child->type == C_VIEW ? child->sway_view : NULL;
|
||||||
struct sway_container_state *cstate = &child->current;
|
struct sway_container_state *cstate = &child->current;
|
||||||
struct border_colors *colors;
|
struct border_colors *colors;
|
||||||
|
@ -686,7 +690,7 @@ static void render_container_stacked(struct sway_output *output,
|
||||||
marks_texture = view ? view->marks_unfocused : NULL;
|
marks_texture = view ? view->marks_unfocused : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
int y = pstate->swayc_y + container_titlebar_height() * i;
|
int y = cstate->swayc_y + titlebar_height * i;
|
||||||
render_titlebar(output, damage, child, cstate->swayc_x, y,
|
render_titlebar(output, damage, child, cstate->swayc_x, y,
|
||||||
cstate->swayc_width, colors, title_texture, marks_texture);
|
cstate->swayc_width, colors, title_texture, marks_texture);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue