aboutsummaryrefslogtreecommitdiff
path: root/sway/desktop/output.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/desktop/output.c')
-rw-r--r--sway/desktop/output.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
index c5461ee6..d7d3fc07 100644
--- a/sway/desktop/output.c
+++ b/sway/desktop/output.c
@@ -251,6 +251,9 @@ static void output_for_each_surface(struct sway_output *output,
};
struct sway_workspace *workspace = output_get_active_workspace(output);
+ if (!workspace) {
+ return;
+ }
struct sway_container *fullscreen_con = root->fullscreen_global;
if (fullscreen_con && container_is_scratchpad_hidden(fullscreen_con)) {
fullscreen_con = NULL;
@@ -320,6 +323,9 @@ struct sway_workspace *output_get_active_workspace(struct sway_output *output) {
struct sway_seat *seat = input_manager_current_seat();
struct sway_node *focus = seat_get_active_tiling_child(seat, &output->node);
if (!focus) {
+ if (!output->workspaces->length) {
+ return NULL;
+ }
return output->workspaces->items[0];
}
return focus->sway_workspace;