diff options
author | Drew DeVault <sir@cmpwn.com> | 2015-12-14 13:59:11 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2015-12-14 13:59:11 -0500 |
commit | fc9908a40a6c09504eeb35a2cab17b5d80a5fab6 (patch) | |
tree | c688d55076772f7b8c8e42492be3fa580256cc3d | |
parent | Merge pull request #317 from mikkeloscar/bar-id-option (diff) | |
parent | Implement bar option: hidden_state <hide|show> (diff) | |
download | sway-fc9908a40a6c09504eeb35a2cab17b5d80a5fab6.tar.gz sway-fc9908a40a6c09504eeb35a2cab17b5d80a5fab6.tar.zst sway-fc9908a40a6c09504eeb35a2cab17b5d80a5fab6.zip |
Merge pull request #318 from mikkeloscar/bar-hidden-state
Implement bar option: hidden_state <hide|show>
-rw-r--r-- | sway/commands.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/sway/commands.c b/sway/commands.c index 7eb076c4..6d40344d 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_hidden_state; | ||
68 | static sway_cmd bar_cmd_id; | 69 | static sway_cmd bar_cmd_id; |
69 | static sway_cmd bar_cmd_position; | 70 | static sway_cmd bar_cmd_position; |
70 | static sway_cmd bar_cmd_strip_workspace_numbers; | 71 | static sway_cmd bar_cmd_strip_workspace_numbers; |
@@ -1524,6 +1525,30 @@ static struct cmd_handler handlers[] = { | |||
1524 | { "workspace_auto_back_and_forth", cmd_ws_auto_back_and_forth }, | 1525 | { "workspace_auto_back_and_forth", cmd_ws_auto_back_and_forth }, |
1525 | }; | 1526 | }; |
1526 | 1527 | ||
1528 | static struct cmd_results *bar_cmd_hidden_state(int argc, char **argv) { | ||
1529 | struct cmd_results *error = NULL; | ||
1530 | if ((error = checkarg(argc, "hidden_state", EXPECTED_EQUAL_TO, 1))) { | ||
1531 | return error; | ||
1532 | } | ||
1533 | |||
1534 | const char *state = argv[0]; | ||
1535 | char *old_state = config->current_bar->hidden_state; | ||
1536 | |||
1537 | if (strcasecmp("hide", state) == 0) { | ||
1538 | config->current_bar->hidden_state = strdup(state); | ||
1539 | } else if(strcmp("show", state) == 0) { | ||
1540 | config->current_bar->hidden_state = strdup(state); | ||
1541 | } else { | ||
1542 | return cmd_results_new(CMD_INVALID, "hidden_state", "Invalid value %s", state); | ||
1543 | } | ||
1544 | |||
1545 | sway_log(L_DEBUG, "Setting hidden_state: '%s' for bar: %s", state, config->current_bar->id); | ||
1546 | |||
1547 | // free old state | ||
1548 | free(old_state); | ||
1549 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | ||
1550 | } | ||
1551 | |||
1527 | static struct cmd_results *bar_cmd_id(int argc, char **argv) { | 1552 | static struct cmd_results *bar_cmd_id(int argc, char **argv) { |
1528 | struct cmd_results *error = NULL; | 1553 | struct cmd_results *error = NULL; |
1529 | if ((error = checkarg(argc, "id", EXPECTED_EQUAL_TO, 1))) { | 1554 | if ((error = checkarg(argc, "id", EXPECTED_EQUAL_TO, 1))) { |
@@ -1661,7 +1686,7 @@ static struct cmd_handler bar_handlers[] = { | |||
1661 | { "bindsym", NULL }, | 1686 | { "bindsym", NULL }, |
1662 | { "colors", NULL }, | 1687 | { "colors", NULL }, |
1663 | { "font", NULL }, | 1688 | { "font", NULL }, |
1664 | { "hidden_state", NULL }, | 1689 | { "hidden_state", bar_cmd_hidden_state }, |
1665 | { "id", bar_cmd_id }, | 1690 | { "id", bar_cmd_id }, |
1666 | { "mode", NULL }, | 1691 | { "mode", NULL }, |
1667 | { "modifier", NULL }, | 1692 | { "modifier", NULL }, |