commit 7f8ea60e71d3185f47954844d9e974bdb49b0c41
parent e815e48ceebfb43627b8d1427400aa51bd93bf7d
Author: Ryan Dwyer <ryandwyer1@gmail.com>
Date: Sun, 20 Jan 2019 19:05:28 +1000
Don't allow noop output to be configured
Diffstat:
3 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/sway/commands/output.c b/sway/commands/output.c
@@ -1,3 +1,4 @@
+#include <strings.h>
#include "sway/commands.h"
#include "sway/config.h"
#include "sway/output.h"
@@ -26,6 +27,13 @@ struct cmd_results *cmd_output(int argc, char **argv) {
return error;
}
+ // The NOOP-1 output is a dummy output used when there's no outputs
+ // connected. It should never be configured.
+ if (strcasecmp(argv[0], "NOOP-1") == 0) {
+ return cmd_results_new(CMD_FAILURE,
+ "Refusing to configure the no op output");
+ }
+
struct output_config *output = new_output_config(argv[0]);
if (!output) {
sway_log(SWAY_ERROR, "Failed to allocate output config");
diff --git a/sway/commands/output/enable.c b/sway/commands/output/enable.c
@@ -1,4 +1,3 @@
-#include <strings.h>
#include "sway/commands.h"
#include "sway/config.h"
@@ -7,14 +6,6 @@ struct cmd_results *output_cmd_enable(int argc, char **argv) {
return cmd_results_new(CMD_FAILURE, "Missing output config");
}
- // The NOOP-1 output is a dummy output used when there's no outputs
- // connected. It should never be enabled.
- char *output_name = config->handler_context.output_config->name;
- if (strcasecmp(output_name, "NOOP-1") == 0) {
- return cmd_results_new(CMD_FAILURE,
- "Refusing to enable the no op output");
- }
-
config->handler_context.output_config->enabled = 1;
config->handler_context.leftovers.argc = argc;
diff --git a/sway/config/output.c b/sway/config/output.c
@@ -176,6 +176,10 @@ void terminate_swaybg(pid_t pid) {
}
bool apply_output_config(struct output_config *oc, struct sway_output *output) {
+ if (output == root->noop_output) {
+ return false;
+ }
+
struct wlr_output *wlr_output = output->wlr_output;
if (oc && !oc->enabled) {