aboutsummaryrefslogtreecommitdiff
path: root/sway/tree
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-04-03 19:34:56 -0400
committeremersion <contact@emersion.fr>2018-04-03 19:34:56 -0400
commitc0554d23d3d89b92b6a871807771b2c2e1f29f61 (patch)
tree5377d383f4a308fcde86928388934f4cf2eb314f /sway/tree
parent843e16847b36a6cf4f685d9dae5133f7f9b37030 (diff)
downloadsway-c0554d23d3d89b92b6a871807771b2c2e1f29f61.tar.xz
Fix rendering with multiple outputs
Diffstat (limited to 'sway/tree')
-rw-r--r--sway/tree/layout.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/sway/tree/layout.c b/sway/tree/layout.c
index 95a84d12..617350d9 100644
--- a/sway/tree/layout.c
+++ b/sway/tree/layout.c
@@ -19,10 +19,14 @@
struct sway_container root_container;
-static void output_layout_change_notify(struct wl_listener *listener,
+static void output_layout_handle_change(struct wl_listener *listener,
void *data) {
- struct wlr_box *layout_box = wlr_output_layout_get_box(
- root_container.sway_root->output_layout, NULL);
+ struct wlr_output_layout *output_layout =
+ root_container.sway_root->output_layout;
+ const struct wlr_box *layout_box =
+ wlr_output_layout_get_box(output_layout, NULL);
+ root_container.x = layout_box->x;
+ root_container.y = layout_box->y;
root_container.width = layout_box->width;
root_container.height = layout_box->height;
@@ -34,8 +38,8 @@ static void output_layout_change_notify(struct wl_listener *listener,
}
struct sway_output *output = output_container->sway_output;
- struct wlr_box *output_box = wlr_output_layout_get_box(
- root_container.sway_root->output_layout, output->wlr_output);
+ const struct wlr_box *output_box =
+ wlr_output_layout_get_box(output_layout, output->wlr_output);
if (!output_box) {
continue;
}
@@ -62,7 +66,7 @@ void layout_init(void) {
wl_signal_init(&root_container.sway_root->events.new_container);
root_container.sway_root->output_layout_change.notify =
- output_layout_change_notify;
+ output_layout_handle_change;
wl_signal_add(&root_container.sway_root->output_layout->events.change,
&root_container.sway_root->output_layout_change);
}