aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Ashworth <bosrsf04@gmail.com>2018-07-30 01:59:20 -0400
committerBrian Ashworth <bosrsf04@gmail.com>2018-07-30 01:59:20 -0400
commitb8efdeae298d59bf7015a9821e3d29cc4e9852e1 (patch)
treef1758d634c85ac5772e26d91078e892e596a6c40
parent8dacd0639cb68675f7fd6fb762a0f71dc6148cb7 (diff)
Fix title textures on scale change
-rw-r--r--include/sway/tree/container.h2
-rw-r--r--sway/desktop/output.c6
-rw-r--r--sway/tree/container.c6
3 files changed, 8 insertions, 6 deletions
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h
index d91b3bf1..d4a42a71 100644
--- a/include/sway/tree/container.h
+++ b/include/sway/tree/container.h
@@ -270,6 +270,8 @@ int container_count_descendants_of_type(struct sway_container *con,
void container_create_notify(struct sway_container *container);
+void container_update_textures_recursive(struct sway_container *con);
+
void container_damage_whole(struct sway_container *container);
bool container_reap_empty(struct sway_container *con);
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
index cecd300a..fb52e7b1 100644
--- a/sway/desktop/output.c
+++ b/sway/desktop/output.c
@@ -506,14 +506,10 @@ static void handle_transform(struct wl_listener *listener, void *data) {
transaction_commit_dirty();
}
-static void handle_scale_iterator(struct sway_container *view, void *data) {
- view_update_marks_textures(view->sway_view);
-}
-
static void handle_scale(struct wl_listener *listener, void *data) {
struct sway_output *output = wl_container_of(listener, output, scale);
arrange_layers(output);
- container_descendants(output->swayc, C_VIEW, handle_scale_iterator, NULL);
+ container_update_textures_recursive(output->swayc);
arrange_windows(output->swayc);
transaction_commit_dirty();
}
diff --git a/sway/tree/container.c b/sway/tree/container.c
index b7442002..4e85021d 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -67,7 +67,7 @@ void container_create_notify(struct sway_container *container) {
}
}
-static void container_update_textures_recursive(struct sway_container *con) {
+void container_update_textures_recursive(struct sway_container *con) {
if (con->type == C_CONTAINER || con->type == C_VIEW) {
container_update_title_textures(con);
}
@@ -79,6 +79,10 @@ static void container_update_textures_recursive(struct sway_container *con) {
struct sway_container *child = con->children->items[i];
container_update_textures_recursive(child);
}
+
+ if (con->type == C_WORKSPACE) {
+ container_update_textures_recursive(con->sway_workspace->floating);
+ }
}
}