diff options
Diffstat (limited to 'sway/commands')
-rw-r--r-- | sway/commands/output.c | 1 | ||||
-rw-r--r-- | sway/commands/output/max_render_time.c | 28 |
2 files changed, 29 insertions, 0 deletions
diff --git a/sway/commands/output.c b/sway/commands/output.c index 59bc598c..db2acb50 100644 --- a/sway/commands/output.c +++ b/sway/commands/output.c @@ -12,6 +12,7 @@ static struct cmd_handler output_handlers[] = { { "disable", output_cmd_disable }, { "dpms", output_cmd_dpms }, { "enable", output_cmd_enable }, + { "max_render_time", output_cmd_max_render_time }, { "mode", output_cmd_mode }, { "pos", output_cmd_position }, { "position", output_cmd_position }, diff --git a/sway/commands/output/max_render_time.c b/sway/commands/output/max_render_time.c new file mode 100644 index 00000000..2d3cebe3 --- /dev/null +++ b/sway/commands/output/max_render_time.c @@ -0,0 +1,28 @@ +#include <strings.h> +#include "sway/commands.h" +#include "sway/config.h" + +struct cmd_results *output_cmd_max_render_time(int argc, char **argv) { + if (!config->handler_context.output_config) { + return cmd_results_new(CMD_FAILURE, "Missing output config"); + } + if (!argc) { + return cmd_results_new(CMD_INVALID, "Missing max render time argument."); + } + + int max_render_time; + if (!strcmp(*argv, "off")) { + max_render_time = 0; + } else { + char *end; + max_render_time = strtol(*argv, &end, 10); + if (*end || max_render_time <= 0) { + return cmd_results_new(CMD_INVALID, "Invalid max render time."); + } + } + config->handler_context.output_config->max_render_time = max_render_time; + + config->handler_context.leftovers.argc = argc - 1; + config->handler_context.leftovers.argv = argv + 1; + return NULL; +} |