Add container_damage_whole

This commit is contained in:
emersion 2018-04-05 18:31:19 -04:00
parent 1c91d0c10f
commit 076bedb85e
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
5 changed files with 23 additions and 11 deletions

View file

@ -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) {
struct sway_container *cont = root_container.children->items[i];
if (cont->type == C_OUTPUT) {
output_damage_whole_surface(cont->sway_output, surface,
lx - cont->x, ly - cont->y);
output_damage_whole_rect(cont->sway_output,
lx - cont->x, ly - cont->y,
surface->current->width, surface->current->height);
}
}
}

View file

@ -341,8 +341,8 @@ void output_damage_whole_view(struct sway_output *output,
output_damage_whole(output);
}
void output_damage_whole_surface(struct sway_output *output,
struct wlr_surface *surface, double ox, double oy) {
void output_damage_whole_rect(struct sway_output *output,
double ox, double oy, int width, int height) {
// TODO
output_damage_whole(output);
}

View file

@ -512,9 +512,18 @@ static bool find_child_func(struct sway_container *con, void *data) {
bool container_has_child(struct sway_container *con,
struct sway_container *child) {
if (con == NULL || con->type == C_VIEW ||
con->children->length == 0) {
if (con == NULL || con->type == C_VIEW || con->children->length == 0) {
return false;
}
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);
}