aboutsummaryrefslogtreecommitdiffstats
path: root/sway/config/output.c
diff options
context:
space:
mode:
authorLibravatar Brian Ashworth <bosrsf04@gmail.com>2018-09-05 14:00:00 -0400
committerLibravatar Brian Ashworth <bosrsf04@gmail.com>2018-09-05 14:00:00 -0400
commitc246cf84c8f5e99c0f2117f2d9d1772c08d7596c (patch)
tree281bd50400911abb33853a2c84c3335faea23eef /sway/config/output.c
parentMerge pull request #2540 from RyanDwyer/typesafety (diff)
downloadsway-c246cf84c8f5e99c0f2117f2d9d1772c08d7596c.tar.gz
sway-c246cf84c8f5e99c0f2117f2d9d1772c08d7596c.tar.zst
sway-c246cf84c8f5e99c0f2117f2d9d1772c08d7596c.zip
Call wlr_output_enable on enable/disable if needed
Diffstat (limited to 'sway/config/output.c')
-rw-r--r--sway/config/output.c32
1 files changed, 15 insertions, 17 deletions
diff --git a/sway/config/output.c b/sway/config/output.c
index aa53fc46..74d79130 100644
--- a/sway/config/output.c
+++ b/sway/config/output.c
@@ -178,12 +178,21 @@ void apply_output_config(struct output_config *oc, struct sway_output *output) {
178 struct wlr_output *wlr_output = output->wlr_output; 178 struct wlr_output *wlr_output = output->wlr_output;
179 179
180 if (oc && oc->enabled == 0) { 180 if (oc && oc->enabled == 0) {
181 if (output->bg_pid != 0) { 181 if (output->enabled) {
182 terminate_swaybg(output->bg_pid); 182 if (output->bg_pid != 0) {
183 output->bg_pid = 0; 183 terminate_swaybg(output->bg_pid);
184 output->bg_pid = 0;
185 }
186 output_disable(output);
187 wlr_output_layout_remove(root->output_layout, wlr_output);
188 }
189 wlr_output_enable(wlr_output, false);
190 return;
191 } else if (!output->enabled) {
192 if (!oc || oc->dpms_state != DPMS_OFF) {
193 wlr_output_enable(wlr_output, true);
184 } 194 }
185 output_disable(output); 195 output_enable(output, oc);
186 wlr_output_layout_remove(root->output_layout, wlr_output);
187 return; 196 return;
188 } 197 }
189 198
@@ -251,7 +260,7 @@ void apply_output_config(struct output_config *oc, struct sway_output *output) {
251 free(command); 260 free(command);
252 } 261 }
253 } 262 }
254 if (oc && oc->dpms_state != DPMS_IGNORE) { 263 if (oc) {
255 switch (oc->dpms_state) { 264 switch (oc->dpms_state) {
256 case DPMS_ON: 265 case DPMS_ON:
257 wlr_log(WLR_DEBUG, "Turning on screen"); 266 wlr_log(WLR_DEBUG, "Turning on screen");
@@ -292,17 +301,6 @@ void apply_output_config_to_outputs(struct output_config *oc) {
292 char *name = sway_output->wlr_output->name; 301 char *name = sway_output->wlr_output->name;
293 output_get_identifier(id, sizeof(id), sway_output); 302 output_get_identifier(id, sizeof(id), sway_output);
294 if (wildcard || !strcmp(name, oc->name) || !strcmp(id, oc->name)) { 303 if (wildcard || !strcmp(name, oc->name) || !strcmp(id, oc->name)) {
295 if (!sway_output->enabled) {
296 if (!oc->enabled) {
297 if (!wildcard) {
298 break;
299 }
300 continue;
301 }
302
303 output_enable(sway_output, oc);
304 }
305
306 struct output_config *current = oc; 304 struct output_config *current = oc;
307 if (wildcard) { 305 if (wildcard) {
308 struct output_config *tmp = get_output_config(name, id); 306 struct output_config *tmp = get_output_config(name, id);