mirror of
https://github.com/swaywm/sway.git
synced 2024-11-29 11:21:28 +00:00
Fix crash in cmd_workspace when layer surface has focus
This commit is contained in:
parent
83b68b2154
commit
191305468c
|
@ -184,6 +184,11 @@ struct cmd_results *cmd_workspace(int argc, char **argv) {
|
|||
bool create = argc > 1 && strcasecmp(argv[1], "--create") == 0;
|
||||
struct sway_seat *seat = config->handler_context.seat;
|
||||
struct sway_workspace *current = seat_get_focused_workspace(seat);
|
||||
if (!current) {
|
||||
return cmd_results_new(CMD_FAILURE, "workspace",
|
||||
"No workspace to switch from");
|
||||
}
|
||||
|
||||
struct sway_workspace *ws = NULL;
|
||||
if (strcasecmp(argv[0], "number") == 0) {
|
||||
if (argc < 2) {
|
||||
|
|
|
@ -1101,7 +1101,7 @@ struct sway_node *seat_get_focus(struct sway_seat *seat) {
|
|||
}
|
||||
|
||||
struct sway_workspace *seat_get_focused_workspace(struct sway_seat *seat) {
|
||||
struct sway_node *focus = seat_get_focus(seat);
|
||||
struct sway_node *focus = seat_get_focus_inactive(seat, &root->node);
|
||||
if (!focus) {
|
||||
return NULL;
|
||||
}
|
||||
|
@ -1111,7 +1111,7 @@ struct sway_workspace *seat_get_focused_workspace(struct sway_seat *seat) {
|
|||
if (focus->type == N_WORKSPACE) {
|
||||
return focus->sway_workspace;
|
||||
}
|
||||
return NULL; // unreachable
|
||||
return NULL; // output doesn't have a workspace yet
|
||||
}
|
||||
|
||||
struct sway_container *seat_get_focused_container(struct sway_seat *seat) {
|
||||
|
|
Loading…
Reference in a new issue