summaryrefslogtreecommitdiff
path: root/src/protocols/SessionLock.cpp
diff options
context:
space:
mode:
authorTom Englund <tomenglund26@gmail.com>2025-07-01 11:31:10 +0200
committerGitHub <noreply@github.com>2025-07-01 11:31:10 +0200
commit8c37d2ce258df773ba7d8b10e7d0ff49d77ed476 (patch)
treeb7c84881e903295e6ec8876c3512929b3c3f921f /src/protocols/SessionLock.cpp
parentee8978b961b9b02ed41bd7b6d1e91cc607b6b530 (diff)
sessionlock: restore cursor if hidden on unlock (#10889)
if session locks have hidden the cursor its gonna be missing unless a new cursor shape is set, hovering windows makes us get one, moving the wallpaper/desktop does not. set it again to left_ptr as is default on compositor start.
Diffstat (limited to 'src/protocols/SessionLock.cpp')
-rw-r--r--src/protocols/SessionLock.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/protocols/SessionLock.cpp b/src/protocols/SessionLock.cpp
index a470117b..d3916fdc 100644
--- a/src/protocols/SessionLock.cpp
+++ b/src/protocols/SessionLock.cpp
@@ -6,6 +6,7 @@
#include "core/Compositor.hpp"
#include "core/Output.hpp"
#include "../helpers/Monitor.hpp"
+#include "../render/Renderer.hpp"
CSessionLockSurface::CSessionLockSurface(SP<CExtSessionLockSurfaceV1> resource_, SP<CWLSurfaceResource> surface_, PHLMONITOR pMonitor_, WP<CSessionLock> owner_) :
m_resource(resource_), m_sessionLock(owner_), m_surface(surface_), m_monitor(pMonitor_) {
@@ -120,6 +121,10 @@ CSessionLock::CSessionLock(SP<CExtSessionLockV1> resource_) : m_resource(resourc
m_events.unlockAndDestroy.emit();
+ // if lock tools have hidden it and doesnt restore it, we wont recieve a new cursor until the cursorshape protocol gives us one.
+ // so set it to left_ptr so the "desktop/wallpaper" doesnt end up missing a cursor until hover over a window sending us a shape.
+ g_pHyprRenderer->setCursorFromName("left_ptr");
+
m_inert = true;
PROTO::sessionLock->destroyResource(this);
});