diff options
Diffstat (limited to 'sway/tree/workspace.c')
-rw-r--r-- | sway/tree/workspace.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/sway/tree/workspace.c b/sway/tree/workspace.c index 6ba3d973..316f01e4 100644 --- a/sway/tree/workspace.c +++ b/sway/tree/workspace.c | |||
@@ -139,6 +139,24 @@ char *workspace_next_name(const char *output_name) { | |||
139 | continue; | 139 | continue; |
140 | } | 140 | } |
141 | 141 | ||
142 | // If the command is workspace number <name>, isolate the name | ||
143 | if (strncmp(_target, "number ", strlen("number ")) == 0) { | ||
144 | size_t length = strlen(_target) - strlen("number ") + 1; | ||
145 | char *temp = malloc(length); | ||
146 | strncpy(temp, _target + strlen("number "), length - 1); | ||
147 | temp[length - 1] = '\0'; | ||
148 | free(_target); | ||
149 | _target = temp; | ||
150 | wlr_log(L_DEBUG, "Isolated name from workspace number: '%s'", _target); | ||
151 | |||
152 | // Make sure the workspace number doesn't already exist | ||
153 | if (workspace_by_number(_target)) { | ||
154 | free(_target); | ||
155 | free(dup); | ||
156 | continue; | ||
157 | } | ||
158 | } | ||
159 | |||
142 | // Make sure that the workspace doesn't already exist | 160 | // Make sure that the workspace doesn't already exist |
143 | if (workspace_by_name(_target)) { | 161 | if (workspace_by_name(_target)) { |
144 | free(_target); | 162 | free(_target); |