aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sway/commands/workspace.c5
-rw-r--r--sway/input/seat.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/sway/commands/workspace.c b/sway/commands/workspace.c
index 5fde8129..362dcd1b 100644
--- a/sway/commands/workspace.c
+++ b/sway/commands/workspace.c
@@ -184,6 +184,11 @@ struct cmd_results *cmd_workspace(int argc, char **argv) {
184 bool create = argc > 1 && strcasecmp(argv[1], "--create") == 0; 184 bool create = argc > 1 && strcasecmp(argv[1], "--create") == 0;
185 struct sway_seat *seat = config->handler_context.seat; 185 struct sway_seat *seat = config->handler_context.seat;
186 struct sway_workspace *current = seat_get_focused_workspace(seat); 186 struct sway_workspace *current = seat_get_focused_workspace(seat);
187 if (!current) {
188 return cmd_results_new(CMD_FAILURE, "workspace",
189 "No workspace to switch from");
190 }
191
187 struct sway_workspace *ws = NULL; 192 struct sway_workspace *ws = NULL;
188 if (strcasecmp(argv[0], "number") == 0) { 193 if (strcasecmp(argv[0], "number") == 0) {
189 if (argc < 2) { 194 if (argc < 2) {
diff --git a/sway/input/seat.c b/sway/input/seat.c
index 245326a1..3a68904b 100644
--- a/sway/input/seat.c
+++ b/sway/input/seat.c
@@ -1101,7 +1101,7 @@ struct sway_node *seat_get_focus(struct sway_seat *seat) {
1101} 1101}
1102 1102
1103struct sway_workspace *seat_get_focused_workspace(struct sway_seat *seat) { 1103struct sway_workspace *seat_get_focused_workspace(struct sway_seat *seat) {
1104 struct sway_node *focus = seat_get_focus(seat); 1104 struct sway_node *focus = seat_get_focus_inactive(seat, &root->node);
1105 if (!focus) { 1105 if (!focus) {
1106 return NULL; 1106 return NULL;
1107 } 1107 }
@@ -1111,7 +1111,7 @@ struct sway_workspace *seat_get_focused_workspace(struct sway_seat *seat) {
1111 if (focus->type == N_WORKSPACE) { 1111 if (focus->type == N_WORKSPACE) {
1112 return focus->sway_workspace; 1112 return focus->sway_workspace;
1113 } 1113 }
1114 return NULL; // unreachable 1114 return NULL; // output doesn't have a workspace yet
1115} 1115}
1116 1116
1117struct sway_container *seat_get_focused_container(struct sway_seat *seat) { 1117struct sway_container *seat_get_focused_container(struct sway_seat *seat) {