diff options
Diffstat (limited to 'sway')
-rw-r--r-- | sway/desktop/desktop.c | 5 | ||||
-rw-r--r-- | sway/desktop/output.c | 4 | ||||
-rw-r--r-- | sway/tree/container.c | 13 |
3 files changed, 16 insertions, 6 deletions
diff --git a/sway/desktop/desktop.c b/sway/desktop/desktop.c index 78a2d49f..c23d988c 100644 --- a/sway/desktop/desktop.c +++ b/sway/desktop/desktop.c @@ -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); } } } diff --git a/sway/desktop/output.c b/sway/desktop/output.c index 0ae5e782..09244460 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -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); } diff --git a/sway/tree/container.c b/sway/tree/container.c index 8fc9e3e8..1450db6d 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c @@ -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); +} |