1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-04 04:42:05 -04:00

fix: redraw wallpaper after DMS lock screen is dismissed (#2037)

After unlocking the screen (startup lock or wake from sleep), the desktop
showed Hyprland's background color instead of the wallpaper.

WallpaperBackground disables QML updates via updatesEnabled after a 1-second
settle timer. While WlSessionLock is active, Hyprland does not composite the
background layer, so when the lock is released it needs a fresh Wayland buffer
— but none is committed because the render loop is already paused.

The previous attempt used SessionService.sessionUnlocked, which is unreliable
for the startup lock case: DMSService is not yet connected when lock() is
called at startup, so notifyLoginctl is a no-op and the loginctl state never
transitions, meaning sessionUnlocked never fires.

Fix by tracking the shell lock state directly from Lock.qml's shouldLock via
a new IdleService.isShellLocked property. WallpaperBackground watches this and
re-enables rendering for 1 second on unlock, ensuring a fresh buffer is
committed to Wayland before the compositor resumes displaying the layer.
This commit is contained in:
Dimariqe
2026-03-20 20:29:32 +07:00
committed by GitHub
parent 3d07b8c9c1
commit 9efbcbcd20
3 changed files with 12 additions and 0 deletions

View File

@@ -64,6 +64,7 @@ Singleton {
property var suspendMonitor: null
property var lockComponent: null
property bool monitorsOff: false
property bool isShellLocked: false
function wake() {
requestMonitorOn();