From 3cb30e7fb09cdd0f6b41fe57173f5dab8bdc0093 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sun, 21 Aug 2022 23:16:54 +0200 Subject: [PATCH] fix crash --- src/managers/XWaylandManager.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/managers/XWaylandManager.cpp b/src/managers/XWaylandManager.cpp index 962fea036..655ba75ac 100644 --- a/src/managers/XWaylandManager.cpp +++ b/src/managers/XWaylandManager.cpp @@ -32,9 +32,13 @@ wlr_surface* CHyprXWaylandManager::getWindowSurface(CWindow* pWindow) { } void CHyprXWaylandManager::activateSurface(wlr_surface* pSurface, bool activate) { - if (wlr_surface_is_xdg_surface(pSurface)) - wlr_xdg_toplevel_set_activated(wlr_xdg_surface_from_wlr_surface(pSurface)->toplevel, activate); - else if (wlr_surface_is_xwayland_surface(pSurface)) { + 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) { + wlr_xdg_toplevel_set_activated(PSURF->toplevel, activate); + } + } else if (wlr_surface_is_xwayland_surface(pSurface)) { wlr_xwayland_surface_activate(wlr_xwayland_surface_from_wlr_surface(pSurface), activate); if (activate)