From f64a2fae4e637b4aa797bf42df3f3976480f73f8 Mon Sep 17 00:00:00 2001 From: Ly-sec Date: Fri, 14 Nov 2025 13:54:59 +0100 Subject: [PATCH] OSD: fix initial output volume osd --- Modules/OSD/OSD.qml | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/Modules/OSD/OSD.qml b/Modules/OSD/OSD.qml index e54dc5a8..b30122b2 100644 --- a/Modules/OSD/OSD.qml +++ b/Modules/OSD/OSD.qml @@ -34,6 +34,7 @@ Variants { readonly property bool isMuted: AudioService.muted property bool volumeInitialized: false property bool muteInitialized: false + property real lastKnownVolume: -1 // Track last known volume to detect actual changes // Input volume properties readonly property real currentInputVolume: AudioService.inputVolume @@ -498,15 +499,33 @@ Variants { target: AudioService function onVolumeChanged() { - if (volumeInitialized) { + // Capture initial volume on first change to avoid showing OSD on startup + if (lastKnownVolume < 0) { + lastKnownVolume = AudioService.volume + volumeInitialized = true + return + } + if (!volumeInitialized) { + return + } + // Only show OSD if volume actually changed from last known value + if (Math.abs(AudioService.volume - lastKnownVolume) > 0.001) { + lastKnownVolume = AudioService.volume showOSD("volume") } } function onMutedChanged() { - if (muteInitialized) { - showOSD("volume") + // Capture initial muted state on first change to avoid showing OSD on startup + if (lastKnownVolume < 0) { + lastKnownVolume = AudioService.volume + muteInitialized = true + return } + if (!muteInitialized) { + return + } + showOSD("volume") } function onInputVolumeChanged() { @@ -552,9 +571,7 @@ Variants { interval: 500 running: true onTriggered: { - volumeInitialized = true - muteInitialized = true - // Input volume initializes on first change to avoid showing OSD on startup + // Volume and input volume initialize on first change to avoid showing OSD on startup // Brightness initializes on first change to avoid showing OSD on startup connectBrightnessMonitors() }