mirror of
https://github.com/swaywm/sway.git
synced 2024-11-30 03:41:27 +00:00
Add container_damage_whole
This commit is contained in:
parent
1c91d0c10f
commit
076bedb85e
|
@ -37,8 +37,8 @@ void output_damage_whole(struct sway_output *output);
|
||||||
void output_damage_whole_view(struct sway_output *output,
|
void output_damage_whole_view(struct sway_output *output,
|
||||||
struct sway_view *view);
|
struct sway_view *view);
|
||||||
|
|
||||||
void output_damage_whole_surface(struct sway_output *output,
|
void output_damage_whole_rect(struct sway_output *output, double ox, double oy,
|
||||||
struct wlr_surface *surface, double ox, double oy);
|
int width, int height);
|
||||||
|
|
||||||
struct sway_container *output_by_name(const char *name);
|
struct sway_container *output_by_name(const char *name);
|
||||||
|
|
||||||
|
|
|
@ -97,8 +97,7 @@ struct sway_container *container_create(enum sway_container_type type);
|
||||||
|
|
||||||
const char *container_type_to_str(enum sway_container_type type);
|
const char *container_type_to_str(enum sway_container_type type);
|
||||||
|
|
||||||
struct sway_container *output_create(
|
struct sway_container *output_create(struct sway_output *sway_output);
|
||||||
struct sway_output *sway_output);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new container container. A container container can be a a child of
|
* Create a new container container. A container container can be a a child of
|
||||||
|
@ -116,7 +115,8 @@ struct sway_container *output_create(struct sway_output *sway_output);
|
||||||
* Create a new workspace container. Workspaces are children of an output
|
* Create a new workspace container. Workspaces are children of an output
|
||||||
* container and are ordered alphabetically by name.
|
* container and are ordered alphabetically by name.
|
||||||
*/
|
*/
|
||||||
struct sway_container *workspace_create(struct sway_container *output, const char *name);
|
struct sway_container *workspace_create(struct sway_container *output,
|
||||||
|
const char *name);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create a new view container. A view can be a child of a workspace container
|
* Create a new view container. A view can be a child of a workspace container
|
||||||
|
@ -182,4 +182,6 @@ bool container_has_child(struct sway_container *con,
|
||||||
|
|
||||||
void container_create_notify(struct sway_container *container);
|
void container_create_notify(struct sway_container *container);
|
||||||
|
|
||||||
|
void container_damage_whole(struct sway_container *container);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -7,8 +7,9 @@ void desktop_damage_whole_surface(struct wlr_surface *surface, double lx,
|
||||||
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];
|
||||||
if (cont->type == C_OUTPUT) {
|
if (cont->type == C_OUTPUT) {
|
||||||
output_damage_whole_surface(cont->sway_output, surface,
|
output_damage_whole_rect(cont->sway_output,
|
||||||
lx - cont->x, ly - cont->y);
|
lx - cont->x, ly - cont->y,
|
||||||
|
surface->current->width, surface->current->height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -341,8 +341,8 @@ void output_damage_whole_view(struct sway_output *output,
|
||||||
output_damage_whole(output);
|
output_damage_whole(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
void output_damage_whole_surface(struct sway_output *output,
|
void output_damage_whole_rect(struct sway_output *output,
|
||||||
struct wlr_surface *surface, double ox, double oy) {
|
double ox, double oy, int width, int height) {
|
||||||
// TODO
|
// TODO
|
||||||
output_damage_whole(output);
|
output_damage_whole(output);
|
||||||
}
|
}
|
||||||
|
|
|
@ -512,9 +512,18 @@ static bool find_child_func(struct sway_container *con, void *data) {
|
||||||
|
|
||||||
bool container_has_child(struct sway_container *con,
|
bool container_has_child(struct sway_container *con,
|
||||||
struct sway_container *child) {
|
struct sway_container *child) {
|
||||||
if (con == NULL || con->type == C_VIEW ||
|
if (con == NULL || con->type == C_VIEW || con->children->length == 0) {
|
||||||
con->children->length == 0) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return container_find(con, find_child_func, child);
|
return container_find(con, find_child_func, child);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void container_damage_whole(struct sway_container *con) {
|
||||||
|
struct sway_container *output = con;
|
||||||
|
if (output->type != C_OUTPUT) {
|
||||||
|
output = container_parent(output, C_OUTPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
output_damage_whole_rect(output->sway_output, con->x, con->y, con->width,
|
||||||
|
con->height);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue