Zren added a comment.
Is the `onVolumeChange` call delayed? I'm not sure if it's fired when we set it, or PulseAudio gets back to us. Does this fire `onVolumeChange` immediately? sinkModel.preferredSink.volume = volume; If so, you're currently calling playFeedback(); // feedback.sinkIndex = sinkModel.preferredSink.index; after you change the volume. Which means `feedback.sinkIndex` isn't set the first volume change, but it is still set until the next time you change the volume. Since it's not `-1` after the first "volume change", it will play feedback, even if it's from something else. If this is so, then we probably want to move the call before we assign the volume. Maybe even rename the function to `playFeedbackNextVolumeChange()` as well. diff --git a/applet/contents/ui/main.qml b/applet/contents/ui/main.qml index 1c9b759..cf58149 100644 --- a/applet/contents/ui/main.qml +++ b/applet/contents/ui/main.qml @@ -78,10 +78,10 @@ Item { } var volume = boundVolume(sinkModel.preferredSink.volume + volumeStep); var percent = volumePercent(volume, maxVolumeValue); + playFeedbackNextVolumeChange(); sinkModel.preferredSink.muted = percent == 0; sinkModel.preferredSink.volume = volume; osd.show(percent); - playFeedback(); } function decreaseVolume() { Also, does `sinkModel.preferredSink.volume` = `sinkModel.preferredSink.volume` fire `onVolumeChange` too? Eg: `increaseVolume()` setting it to 100% when it's already at 100%. REPOSITORY R115 Plasma Audio Volume Applet REVISION DETAIL https://phabricator.kde.org/D4140 To: drosca, #plasma Cc: Zren, broulik, plasma-devel, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart