From 70ebc3add3b941a52f460f02129ef0842f580ec7 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Tue, 30 Apr 2024 21:59:07 +0100 Subject: sessionLock: call wlr_surface_map/_unmap on the surface manually fixes unmapped subsurfaces etc ref #5816 --- src/protocols/SessionLock.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/protocols/SessionLock.cpp') 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 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 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 resource_, } CSessionLockSurface::~CSessionLockSurface() { + if (pSurface && pSurface->mapped) + wlr_surface_unmap(pSurface); hyprListener_surfaceCommit.removeCallback(); hyprListener_surfaceDestroy.removeCallback(); events.destroy.emit(); // just in case. -- cgit v1.2.3