summaryrefslogtreecommitdiff
path: root/src/managers/XWaylandManager.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-08-21 23:16:54 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-08-21 23:16:54 +0200
commit3cb30e7fb09cdd0f6b41fe57173f5dab8bdc0093 (patch)
tree2e040144ccd21b20757271907e35310cf49f3859 /src/managers/XWaylandManager.cpp
parent3e9a8a7bc8952c086f41eb4ecf6d031368ad2487 (diff)
fix crash
Diffstat (limited to 'src/managers/XWaylandManager.cpp')
-rw-r--r--src/managers/XWaylandManager.cpp10
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)