On Tue, Dec 20, 2011 at 06:52:58PM +0200, Uri Lublin wrote: > The default stays the same -- false. > > A race could prevent setting ForeignMenu::_active correctly. > That happened when Application::on_app_activated was called before > _foriegn_menu was created. When foriegn_menu was created its > _active defaults to false, and that has not changed, until focus > was taken out and back in spice-client window. > > This caused usbrdr to sometimes not auto-share devices, unless > the user switched focus to a different application and back to > spicec. >
ACK. > The fix updates ForiegnMenu::_active upon creation. > --- > client/application.cpp | 2 +- > client/foreign_menu.cpp | 4 ++-- > client/foreign_menu.h | 2 +- > 3 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/client/application.cpp b/client/application.cpp > index decf8a1..e120dfe 100644 > --- a/client/application.cpp > +++ b/client/application.cpp > @@ -599,7 +599,7 @@ int Application::run() > > void Application::on_start_running() > { > - _foreign_menu.reset(new ForeignMenu(this)); > + _foreign_menu.reset(new ForeignMenu(this, _active)); > if (_enable_controller) { > _controller.reset(new Controller(this)); > return; > diff --git a/client/foreign_menu.cpp b/client/foreign_menu.cpp > index 00cc57c..d1df49d 100644 > --- a/client/foreign_menu.cpp > +++ b/client/foreign_menu.cpp > @@ -36,9 +36,9 @@ > #define PIPE_NAME "/tmp/SpiceForeignMenu-%lu.uds" > #endif > > -ForeignMenu::ForeignMenu(ForeignMenuInterface *handler) > +ForeignMenu::ForeignMenu(ForeignMenuInterface *handler, bool active) > : _handler (handler) > - , _active (false) > + , _active (active) > , _refs (1) > { > char pipe_name[PIPE_NAME_MAX_LEN]; > diff --git a/client/foreign_menu.h b/client/foreign_menu.h > index 2fc4e53..6138087 100644 > --- a/client/foreign_menu.h > +++ b/client/foreign_menu.h > @@ -38,7 +38,7 @@ public: > > class ForeignMenu : public NamedPipe::ListenerInterface { > public: > - ForeignMenu(ForeignMenuInterface *handler); > + ForeignMenu(ForeignMenuInterface *handler, bool active = false); > virtual ~ForeignMenu(); > > ForeignMenu* ref() { _refs++; return this;} > -- > 1.7.1 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/spice-devel _______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel