aboutsummaryrefslogtreecommitdiffstats
path: root/sway/config
diff options
context:
space:
mode:
authorLibravatar emersion <contact@emersion.fr>2017-12-12 20:02:01 +0100
committerLibravatar emersion <contact@emersion.fr>2017-12-12 20:02:01 +0100
commitc7abb77f2217cc4d5642ef1650f7fc75e1c1a9a4 (patch)
tree8118cd69c22ec2545572a8e443080907f087d401 /sway/config
parentAdd scale and transform events to sway_output (diff)
downloadsway-c7abb77f2217cc4d5642ef1650f7fc75e1c1a9a4.tar.gz
sway-c7abb77f2217cc4d5642ef1650f7fc75e1c1a9a4.tar.zst
sway-c7abb77f2217cc4d5642ef1650f7fc75e1c1a9a4.zip
Listen to output layout change
Diffstat (limited to 'sway/config')
-rw-r--r--sway/config/output.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/sway/config/output.c b/sway/config/output.c
index b06c7c0e..ed47a617 100644
--- a/sway/config/output.c
+++ b/sway/config/output.c
@@ -99,7 +99,8 @@ void apply_output_config(struct output_config *oc, swayc_t *output) {
99 99
100 struct wlr_output *wlr_output = output->sway_output->wlr_output; 100 struct wlr_output *wlr_output = output->sway_output->wlr_output;
101 if (oc && oc->enabled == 0) { 101 if (oc && oc->enabled == 0) {
102 wlr_output_layout_remove(root_container.output_layout, wlr_output); 102 wlr_output_layout_remove(root_container.sway_root->output_layout,
103 wlr_output);
103 destroy_output(output); 104 destroy_output(output);
104 return; 105 return;
105 } 106 }
@@ -117,19 +118,21 @@ void apply_output_config(struct output_config *oc, swayc_t *output) {
117 if (oc && oc->transform >= 0) { 118 if (oc && oc->transform >= 0) {
118 sway_log(L_DEBUG, "Set %s transform to %d", oc->name, oc->transform); 119 sway_log(L_DEBUG, "Set %s transform to %d", oc->name, oc->transform);
119 wlr_output_transform(wlr_output, oc->transform); 120 wlr_output_transform(wlr_output, oc->transform);
120 wl_signal_emit(&output->sway_output->events.transform, output->sway_output); 121 wl_signal_emit(&output->sway_output->events.transform,
122 output->sway_output);
121 } 123 }
122 124
123 // Find position for it 125 // Find position for it
124 if (oc && (oc->x != -1 || oc->y != -1)) { 126 if (oc && (oc->x != -1 || oc->y != -1)) {
125 sway_log(L_DEBUG, "Set %s position to %d, %d", oc->name, oc->x, oc->y); 127 sway_log(L_DEBUG, "Set %s position to %d, %d", oc->name, oc->x, oc->y);
126 wlr_output_layout_add(root_container.output_layout, wlr_output, oc->x, 128 wlr_output_layout_add(root_container.sway_root->output_layout,
127 oc->y); 129 wlr_output, oc->x, oc->y);
128 } else { 130 } else {
129 wlr_output_layout_add_auto(root_container.output_layout, wlr_output); 131 wlr_output_layout_add_auto(root_container.sway_root->output_layout,
132 wlr_output);
130 } 133 }
131 struct wlr_box *output_layout_box = 134 struct wlr_box *output_layout_box = wlr_output_layout_get_box(
132 wlr_output_layout_get_box(root_container.output_layout, wlr_output); 135 root_container.sway_root->output_layout, wlr_output);
133 output->x = output_layout_box->x; 136 output->x = output_layout_box->x;
134 output->y = output_layout_box->y; 137 output->y = output_layout_box->y;
135 output->width = output_layout_box->width; 138 output->width = output_layout_box->width;