diff options
author | Drew DeVault <sir@cmpwn.com> | 2015-12-14 16:47:28 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2015-12-14 16:47:28 -0500 |
commit | fa0f57cd045ef13aff02a9c25bf0c46226f1b55b (patch) | |
tree | 3692de5b362e8e43cbcdaf6fb42dc541e1030495 | |
parent | Merge pull request #318 from mikkeloscar/bar-hidden-state (diff) | |
parent | Implement bar option: mode <dock|hide|invisible> (diff) | |
download | sway-fa0f57cd045ef13aff02a9c25bf0c46226f1b55b.tar.gz sway-fa0f57cd045ef13aff02a9c25bf0c46226f1b55b.tar.zst sway-fa0f57cd045ef13aff02a9c25bf0c46226f1b55b.zip |
Merge pull request #319 from mikkeloscar/bar-mode
Implement bar option: mode <dock|hide|invisible>
-rw-r--r-- | sway/commands.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/sway/commands.c b/sway/commands.c index 6d40344d..a394c69d 100644 --- a/sway/commands.c +++ b/sway/commands.c | |||
@@ -65,6 +65,7 @@ static sway_cmd cmd_sticky; | |||
65 | static sway_cmd cmd_workspace; | 65 | static sway_cmd cmd_workspace; |
66 | static sway_cmd cmd_ws_auto_back_and_forth; | 66 | static sway_cmd cmd_ws_auto_back_and_forth; |
67 | 67 | ||
68 | static sway_cmd bar_cmd_mode; | ||
68 | static sway_cmd bar_cmd_hidden_state; | 69 | static sway_cmd bar_cmd_hidden_state; |
69 | static sway_cmd bar_cmd_id; | 70 | static sway_cmd bar_cmd_id; |
70 | static sway_cmd bar_cmd_position; | 71 | static sway_cmd bar_cmd_position; |
@@ -1549,6 +1550,32 @@ static struct cmd_results *bar_cmd_hidden_state(int argc, char **argv) { | |||
1549 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 1550 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |
1550 | } | 1551 | } |
1551 | 1552 | ||
1553 | static struct cmd_results *bar_cmd_mode(int argc, char **argv) { | ||
1554 | struct cmd_results *error = NULL; | ||
1555 | if ((error = checkarg(argc, "mode", EXPECTED_EQUAL_TO, 1))) { | ||
1556 | return error; | ||
1557 | } | ||
1558 | |||
1559 | const char *mode = argv[0]; | ||
1560 | char *old_mode = config->current_bar->mode; | ||
1561 | |||
1562 | if (strcasecmp("dock", mode) == 0) { | ||
1563 | config->current_bar->mode = strdup(mode); | ||
1564 | } else if(strcmp("hide", mode) == 0) { | ||
1565 | config->current_bar->mode = strdup(mode); | ||
1566 | } else if(strcmp("invisible", mode) == 0) { | ||
1567 | config->current_bar->mode = strdup(mode); | ||
1568 | } else { | ||
1569 | return cmd_results_new(CMD_INVALID, "mode", "Invalid value %s", mode); | ||
1570 | } | ||
1571 | |||
1572 | sway_log(L_DEBUG, "Setting mode: '%s' for bar: %s", mode, config->current_bar->id); | ||
1573 | |||
1574 | // free old mode | ||
1575 | free(old_mode); | ||
1576 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | ||
1577 | } | ||
1578 | |||
1552 | static struct cmd_results *bar_cmd_id(int argc, char **argv) { | 1579 | static struct cmd_results *bar_cmd_id(int argc, char **argv) { |
1553 | struct cmd_results *error = NULL; | 1580 | struct cmd_results *error = NULL; |
1554 | if ((error = checkarg(argc, "id", EXPECTED_EQUAL_TO, 1))) { | 1581 | if ((error = checkarg(argc, "id", EXPECTED_EQUAL_TO, 1))) { |
@@ -1688,7 +1715,7 @@ static struct cmd_handler bar_handlers[] = { | |||
1688 | { "font", NULL }, | 1715 | { "font", NULL }, |
1689 | { "hidden_state", bar_cmd_hidden_state }, | 1716 | { "hidden_state", bar_cmd_hidden_state }, |
1690 | { "id", bar_cmd_id }, | 1717 | { "id", bar_cmd_id }, |
1691 | { "mode", NULL }, | 1718 | { "mode", bar_cmd_mode }, |
1692 | { "modifier", NULL }, | 1719 | { "modifier", NULL }, |
1693 | { "output", NULL }, | 1720 | { "output", NULL }, |
1694 | { "position", bar_cmd_position }, | 1721 | { "position", bar_cmd_position }, |