From 8c37d2ce258df773ba7d8b10e7d0ff49d77ed476 Mon Sep 17 00:00:00 2001 From: Tom Englund Date: Tue, 1 Jul 2025 11:31:10 +0200 Subject: [PATCH] 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. --- src/protocols/SessionLock.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/protocols/SessionLock.cpp b/src/protocols/SessionLock.cpp index a470117b5..d3916fdcd 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 resource_, SP surface_, PHLMONITOR pMonitor_, WP owner_) : m_resource(resource_), m_sessionLock(owner_), m_surface(surface_), m_monitor(pMonitor_) { @@ -120,6 +121,10 @@ CSessionLock::CSessionLock(SP 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); });