diff --git a/rootston/desktop.c b/rootston/desktop.c index 69c71867..7da64ef8 100644 --- a/rootston/desktop.c +++ b/rootston/desktop.c @@ -439,6 +439,11 @@ void view_destroy(struct roots_view *view) { view_unmap(view); } + // Can happen if fullscreened while unmapped, and hasn't been mapped + if (view->fullscreen_output != NULL) { + view->fullscreen_output->fullscreen_view = NULL; + } + if (view->destroy) { view->destroy(view); } @@ -576,6 +581,9 @@ static bool view_at(struct roots_view *view, double lx, double ly, view->wl_shell_surface->state == WLR_WL_SHELL_SURFACE_STATE_POPUP) { return false; } + if (view->wlr_surface == NULL) { + return false; + } double view_sx = lx - view->x; double view_sy = ly - view->y;