diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-04-30 21:59:07 +0100 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-04-30 21:59:07 +0100 |
| commit | 70ebc3add3b941a52f460f02129ef0842f580ec7 (patch) | |
| tree | 29e18518d64537d8fd99bb5cf6e4449582ece327 /src/protocols/SessionLock.cpp | |
| parent | a09103cd38b934a03efdf86c785d08ed6d127bff (diff) | |
sessionLock: call wlr_surface_map/_unmap on the surface manually
fixes unmapped subsurfaces etc
ref #5816
Diffstat (limited to 'src/protocols/SessionLock.cpp')
| -rw-r--r-- | src/protocols/SessionLock.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/protocols/SessionLock.cpp b/src/protocols/SessionLock.cpp index 801aaeb9..ee7e201d 100644 --- a/src/protocols/SessionLock.cpp +++ b/src/protocols/SessionLock.cpp @@ -36,8 +36,10 @@ CSessionLockSurface::CSessionLockSurface(SP<CExtSessionLockSurfaceV1> resource_, if (committed) events.commit.emit(); - else + else { + wlr_surface_map(pSurface); events.map.emit(); + } committed = true; }, this, "SessionLockSurface"); @@ -46,6 +48,7 @@ CSessionLockSurface::CSessionLockSurface(SP<CExtSessionLockSurfaceV1> resource_, &pSurface->events.destroy, [this](void* owner, void* data) { LOGM(WARN, "SessionLockSurface object remains but surface is being destroyed???"); + wlr_surface_unmap(pSurface); hyprListener_surfaceCommit.removeCallback(); hyprListener_surfaceDestroy.removeCallback(); pSurface = nullptr; @@ -58,6 +61,8 @@ CSessionLockSurface::CSessionLockSurface(SP<CExtSessionLockSurfaceV1> resource_, } CSessionLockSurface::~CSessionLockSurface() { + if (pSurface && pSurface->mapped) + wlr_surface_unmap(pSurface); hyprListener_surfaceCommit.removeCallback(); hyprListener_surfaceDestroy.removeCallback(); events.destroy.emit(); // just in case. |
