diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-08-21 23:16:54 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-08-21 23:16:54 +0200 |
| commit | 3cb30e7fb09cdd0f6b41fe57173f5dab8bdc0093 (patch) | |
| tree | 2e040144ccd21b20757271907e35310cf49f3859 /src/managers/XWaylandManager.cpp | |
| parent | 3e9a8a7bc8952c086f41eb4ecf6d031368ad2487 (diff) | |
fix crash
Diffstat (limited to 'src/managers/XWaylandManager.cpp')
| -rw-r--r-- | src/managers/XWaylandManager.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/managers/XWaylandManager.cpp b/src/managers/XWaylandManager.cpp index 962fea03..655ba75a 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) |
