diff options
Diffstat (limited to 'sway/tree')
| -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 c629f1f1..d6fd7c70 100644 --- a/sway/tree/workspace.c +++ b/sway/tree/workspace.c @@ -87,6 +87,24 @@ char *workspace_next_name(const char *output_name) {  				continue;  			} +			// If the command is workspace number <name>, isolate the name +			if (strncmp(_target, "number ", strlen("number ")) == 0) { +				size_t length = strlen(_target) - strlen("number ") + 1; +				char *temp = malloc(length); +				strncpy(temp, _target + strlen("number "), length - 1); +				temp[length - 1] = '\0'; +				free(_target); +				_target = temp; +				wlr_log(L_DEBUG, "Isolated name from workspace number: '%s'", _target); + +				// Make sure the workspace number doesn't already exist +				if (workspace_by_number(_target)) { +					free(_target); +					free(dup); +					continue; +				} +			} +  			// Make sure that the workspace doesn't already exist  			if (workspace_by_name(_target)) {  				free(_target); | 
