aboutsummaryrefslogtreecommitdiff
path: root/sway/commands/sticky.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/commands/sticky.c')
-rw-r--r--sway/commands/sticky.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/sway/commands/sticky.c b/sway/commands/sticky.c
index f18322b7..7cd358a4 100644
--- a/sway/commands/sticky.c
+++ b/sway/commands/sticky.c
@@ -9,6 +9,7 @@
#include "sway/tree/view.h"
#include "sway/tree/workspace.h"
#include "list.h"
+#include "util.h"
struct cmd_results *cmd_sticky(int argc, char **argv) {
struct cmd_results *error = NULL;
@@ -26,21 +27,9 @@ struct cmd_results *cmd_sticky(int argc, char **argv) {
"Can't set sticky on a tiled container");
}
- bool wants_sticky;
- if (strcasecmp(argv[0], "enable") == 0) {
- wants_sticky = true;
- } else if (strcasecmp(argv[0], "disable") == 0) {
- wants_sticky = false;
- } else if (strcasecmp(argv[0], "toggle") == 0) {
- wants_sticky = !container->is_sticky;
- } else {
- return cmd_results_new(CMD_FAILURE, "sticky",
- "Expected 'sticky <enable|disable|toggle>'");
- }
-
- container->is_sticky = wants_sticky;
+ container->is_sticky = parse_boolean(argv[0], container->is_sticky);
- if (wants_sticky) {
+ if (container->is_sticky) {
// move container to active workspace
struct sway_workspace *active_workspace =
output_get_active_workspace(container->workspace->output);