diff options
Diffstat (limited to 'sway/tree/workspace.c')
-rw-r--r-- | sway/tree/workspace.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sway/tree/workspace.c b/sway/tree/workspace.c index 27e9ac7a..05cda5c0 100644 --- a/sway/tree/workspace.c +++ b/sway/tree/workspace.c | |||
@@ -35,6 +35,10 @@ struct sway_output *workspace_get_initial_output(const char *name) { | |||
35 | struct workspace_config *wsc = workspace_find_config(name); | 35 | struct workspace_config *wsc = workspace_find_config(name); |
36 | if (wsc && wsc->output) { | 36 | if (wsc && wsc->output) { |
37 | struct sway_output *output = output_by_name(wsc->output); | 37 | struct sway_output *output = output_by_name(wsc->output); |
38 | if (!output) { | ||
39 | output = output_by_identifier(wsc->output); | ||
40 | } | ||
41 | |||
38 | if (output) { | 42 | if (output) { |
39 | return output; | 43 | return output; |
40 | } | 44 | } |
@@ -143,7 +147,11 @@ void workspace_consider_destroy(struct sway_workspace *ws) { | |||
143 | static bool workspace_valid_on_output(const char *output_name, | 147 | static bool workspace_valid_on_output(const char *output_name, |
144 | const char *ws_name) { | 148 | const char *ws_name) { |
145 | struct workspace_config *wsc = workspace_find_config(ws_name); | 149 | struct workspace_config *wsc = workspace_find_config(ws_name); |
146 | return !wsc || !wsc->output || strcmp(wsc->output, output_name) == 0; | 150 | char identifier[128]; |
151 | struct sway_output *output = output_by_name(output_name); | ||
152 | output_get_identifier(identifier, sizeof(identifier), output); | ||
153 | |||
154 | return !wsc || !wsc->output || strcmp(wsc->output, output_name) == 0 || strcasecmp(identifier, output_name) == 0; | ||
147 | } | 155 | } |
148 | 156 | ||
149 | static void workspace_name_from_binding(const struct sway_binding * binding, | 157 | static void workspace_name_from_binding(const struct sway_binding * binding, |