[pulseaudio-discuss] [PATCH pavucontrol] mainwindow: Don't clear the "updating" flag in updateCard() too early.

Tanu Kaskinen tanuk at iki.fi
Thu Nov 22 06:05:07 PST 2012


On Tue, 2012-11-20 at 21:59 +0000, Colin Guthrie wrote:
> 'Twas brillig, and Tanu Kaskinen at 19/11/12 13:29 did gyre and gimble:
> > The prepareMenu() call can change the active profile selection, which
> > in turn will cause a "set card profile" command to be sent to the
> > server if the "updating" flag is not set, so the "updating" flag needs
> > to be set when calling prepareMenu() from updateCard().
> > 
> > This caused a problem with disconnecting bluetooth headsets: as part
> > of the disconnection procedure, module-bluetooth-device sets the card
> > profile to "off". At that point module-card-restore doesn't do
> > anything, because the change is marked as "don't save". But the
> > profile change event is then sent to pavucontrol, which updates its
> > view, and pavucontrol sends the new profile ("off") back to
> > pulseaudio, and this time the profile change iss marked as "please
> > save", so module-card-restore restores the "off" profile when the
> > device is connected again, even though the user never requested the
> > "off" profile to be chosen.
> > 
> > BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=57239
> > ---
> >  src/mainwindow.cc |    4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/mainwindow.cc b/src/mainwindow.cc
> > index 1041eab..720a4db 100644
> > --- a/src/mainwindow.cc
> > +++ b/src/mainwindow.cc
> > @@ -346,12 +346,12 @@ void MainWindow::updateCard(const pa_card_info &info) {
> >          }
> >      }
> >  
> > -    w->updating = false;
> > -
> >      w->prepareMenu();
> >  
> >      if (is_new)
> >          updateDeviceVisibility();
> > +
> > +    w->updating = false;
> >  }
> >  
> >  bool MainWindow::updateSink(const pa_sink_info &info) {
> 
> Looks fine to me and your explanation makes sense.

Thanks for review, I've pushed this patch now.

-- 
Tanu



More information about the pulseaudio-discuss mailing list