mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-06-13 22:46:34 -04:00
fix(osd): ensure OSD appears on all monitors after resume (#2453)
Some monitors, especially cheaper models, are slow to power on after sleep and may not be present in Quickshell.screens when onScreensChanged is triggered. This change adds a 3-second delay before updating currentOSDsByScreen to ensure all screens are detected, mitigating the issue of OSDs not appearing on certain monitors after resume. Co-authored-by: Klesh Wong <kleshwong@gmail.com>
This commit is contained in:
@@ -9,9 +9,11 @@ Singleton {
|
|||||||
|
|
||||||
property var currentOSDsByScreen: ({})
|
property var currentOSDsByScreen: ({})
|
||||||
|
|
||||||
Connections {
|
Timer {
|
||||||
target: Quickshell
|
id: screensChangedDelayTimer
|
||||||
function onScreensChanged() {
|
interval: 3000 // 3 seconds
|
||||||
|
repeat: false
|
||||||
|
onTriggered: {
|
||||||
const activeNames = {};
|
const activeNames = {};
|
||||||
for (let i = 0; i < Quickshell.screens.length; i++)
|
for (let i = 0; i < Quickshell.screens.length; i++)
|
||||||
activeNames[Quickshell.screens[i].name] = true;
|
activeNames[Quickshell.screens[i].name] = true;
|
||||||
@@ -22,6 +24,12 @@ Singleton {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Connections {
|
||||||
|
target: Quickshell
|
||||||
|
function onScreensChanged() {
|
||||||
|
screensChangedDelayTimer.restart();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function showOSD(osd) {
|
function showOSD(osd) {
|
||||||
if (!osd || !osd.screen)
|
if (!osd || !osd.screen)
|
||||||
|
|||||||
Reference in New Issue
Block a user