diff options
author | emersion <contact@emersion.fr> | 2017-12-12 20:02:01 +0100 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2017-12-12 20:02:01 +0100 |
commit | c7abb77f2217cc4d5642ef1650f7fc75e1c1a9a4 (patch) | |
tree | 8118cd69c22ec2545572a8e443080907f087d401 /sway/config | |
parent | Add scale and transform events to sway_output (diff) | |
download | sway-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.c | 17 |
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; |