diff options
Diffstat (limited to 'src/modules/alsa/alsa-source.c')
-rw-r--r-- | src/modules/alsa/alsa-source.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c index ab7335d8..97092bb5 100644 --- a/src/modules/alsa/alsa-source.c +++ b/src/modules/alsa/alsa-source.c @@ -1113,8 +1113,10 @@ static int ctl_mixer_callback(snd_mixer_elem_t *elem, unsigned int mask) { if (!PA_SOURCE_IS_LINKED(u->source->state)) return 0; - if (u->source->suspend_cause & PA_SUSPEND_SESSION) + if (u->source->suspend_cause & PA_SUSPEND_SESSION) { + pa_source_set_mixer_dirty(u->source, TRUE); return 0; + } if (mask & SND_CTL_EVENT_MASK_VALUE) { pa_source_get_volume(u->source, TRUE); @@ -1133,8 +1135,10 @@ static int io_mixer_callback(snd_mixer_elem_t *elem, unsigned int mask) { if (mask == SND_CTL_EVENT_MASK_REMOVE) return 0; - if (u->source->suspend_cause & PA_SUSPEND_SESSION) + if (u->source->suspend_cause & PA_SUSPEND_SESSION) { + pa_source_set_mixer_dirty(u->source, TRUE); return 0; + } if (mask & SND_CTL_EVENT_MASK_VALUE) pa_source_update_volume_and_mute(u->source); |