mirror of
https://github.com/swaywm/sway.git
synced 2024-11-26 18:01:29 +00:00
Count descendant views for hide_edge_borders smart
This commit is contained in:
parent
3db7fc2bb2
commit
e3625d8f33
|
@ -187,6 +187,9 @@ bool container_has_anscestor(struct sway_container *container,
|
||||||
bool container_has_child(struct sway_container *con,
|
bool container_has_child(struct sway_container *con,
|
||||||
struct sway_container *child);
|
struct sway_container *child);
|
||||||
|
|
||||||
|
int container_count_descendants_of_type(struct sway_container *con,
|
||||||
|
enum sway_container_type type);
|
||||||
|
|
||||||
void container_create_notify(struct sway_container *container);
|
void container_create_notify(struct sway_container *container);
|
||||||
|
|
||||||
void container_damage_whole(struct sway_container *container);
|
void container_damage_whole(struct sway_container *container);
|
||||||
|
|
|
@ -322,8 +322,8 @@ static void render_container_simple_border_normal(struct sway_output *output,
|
||||||
struct wlr_box box;
|
struct wlr_box box;
|
||||||
float color[4];
|
float color[4];
|
||||||
|
|
||||||
struct sway_container *workspace = container_parent(con, C_WORKSPACE);
|
struct sway_container *ws = container_parent(con, C_WORKSPACE);
|
||||||
int other_views = workspace->children->length - 1;
|
int other_views = container_count_descendants_of_type(ws, C_VIEW) - 1;
|
||||||
|
|
||||||
if (config->hide_edge_borders != E_VERTICAL
|
if (config->hide_edge_borders != E_VERTICAL
|
||||||
&& config->hide_edge_borders != E_BOTH
|
&& config->hide_edge_borders != E_BOTH
|
||||||
|
@ -424,8 +424,8 @@ static void render_container_simple_border_pixel(struct sway_output *output,
|
||||||
struct wlr_box box;
|
struct wlr_box box;
|
||||||
float color[4];
|
float color[4];
|
||||||
|
|
||||||
struct sway_container *workspace = container_parent(con, C_WORKSPACE);
|
struct sway_container *ws = container_parent(con, C_WORKSPACE);
|
||||||
int other_views = workspace->children->length - 1;
|
int other_views = container_count_descendants_of_type(ws, C_VIEW) - 1;
|
||||||
|
|
||||||
if (config->hide_edge_borders != E_VERTICAL
|
if (config->hide_edge_borders != E_VERTICAL
|
||||||
&& config->hide_edge_borders != E_BOTH
|
&& config->hide_edge_borders != E_BOTH
|
||||||
|
|
|
@ -547,6 +547,20 @@ bool container_has_child(struct sway_container *con,
|
||||||
return container_find(con, find_child_func, child);
|
return container_find(con, find_child_func, child);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int container_count_descendants_of_type(struct sway_container *con,
|
||||||
|
enum sway_container_type type) {
|
||||||
|
int children = 0;
|
||||||
|
if (con->type == type) {
|
||||||
|
children++;
|
||||||
|
} else if (con->children) {
|
||||||
|
for (int i = 0; i < con->children->length; i++) {
|
||||||
|
struct sway_container *child = con->children->items[i];
|
||||||
|
children += container_count_descendants_of_type(child, type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return children;
|
||||||
|
}
|
||||||
|
|
||||||
void container_damage_whole(struct sway_container *container) {
|
void container_damage_whole(struct sway_container *container) {
|
||||||
for (int i = 0; i < root_container.children->length; ++i) {
|
for (int i = 0; i < root_container.children->length; ++i) {
|
||||||
struct sway_container *cont = root_container.children->items[i];
|
struct sway_container *cont = root_container.children->items[i];
|
||||||
|
|
|
@ -101,7 +101,7 @@ void view_autoconfigure(struct sway_view *view) {
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE);
|
struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE);
|
||||||
int other_views = ws->children->length - 1;
|
int other_views = container_count_descendants_of_type(ws, C_VIEW) - 1;
|
||||||
|
|
||||||
double x, y, width, height;
|
double x, y, width, height;
|
||||||
x = y = width = height = 0;
|
x = y = width = height = 0;
|
||||||
|
|
Loading…
Reference in a new issue