diff --git a/src/managers/XWaylandManager.cpp b/src/managers/XWaylandManager.cpp index 14642878..40d841ab 100644 --- a/src/managers/XWaylandManager.cpp +++ b/src/managers/XWaylandManager.cpp @@ -32,9 +32,12 @@ wlr_surface* CHyprXWaylandManager::getWindowSurface(CWindow* pWindow) { } void CHyprXWaylandManager::activateSurface(wlr_surface* pSurface, bool activate) { + if (!pSurface) + return; + if (wlr_surface_is_xdg_surface(pSurface)) { const auto PSURF = wlr_xdg_surface_from_wlr_surface(pSurface); - if (PSURF->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL) { + if (PSURF && PSURF->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL) { wlr_xdg_toplevel_set_activated(PSURF->toplevel, activate); } } else if (wlr_surface_is_xwayland_surface(pSurface)) {