diff options
| author | Andrea Azzarone <azzaronea@gmail.com> | 2014-03-28 10:14:55 +0000 |
|---|---|---|
| committer | CI bot <ps-jenkins@lists.canonical.com> | 2014-03-28 10:14:55 +0000 |
| commit | bec36e565e677c58d3530f15e8a81dda4224b620 (patch) | |
| tree | cd6ef5caaa65d4ff5835fdd46297eb749f29a50c /lockscreen | |
| parent | 55e995c3f47ff96b1b8e299b59070f9862f6e169 (diff) | |
| parent | 9616465757b63ade1878826e5aac73852b5af7cb (diff) | |
Fixes the double lockscreen when switching users. Fixes: 1291088, 1298202
(bzr r3743)
Diffstat (limited to 'lockscreen')
| -rw-r--r-- | lockscreen/LockScreenAbstractShield.h | 1 | ||||
| -rw-r--r-- | lockscreen/LockScreenController.cpp | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/lockscreen/LockScreenAbstractShield.h b/lockscreen/LockScreenAbstractShield.h index 584a66fe3..a9e993196 100644 --- a/lockscreen/LockScreenAbstractShield.h +++ b/lockscreen/LockScreenAbstractShield.h @@ -45,6 +45,7 @@ public: nux::Property<bool> primary; nux::Property<int> monitor; + using MockableBaseWindow::RemoveLayout; virtual bool IsIndicatorOpen() const = 0; sigc::signal<void, int, int> grab_motion; diff --git a/lockscreen/LockScreenController.cpp b/lockscreen/LockScreenController.cpp index 6904ee075..3385d0ef3 100644 --- a/lockscreen/LockScreenController.cpp +++ b/lockscreen/LockScreenController.cpp @@ -74,6 +74,11 @@ Controller::Controller(session::Manager::Ptr const& session_manager, motion_connection_->disconnect(); uscreen_connection_->block(); session_manager_->unlocked.emit(); + + std::for_each(shields_.begin(), shields_.end(), [](nux::ObjectPtr<Shield> const& shield) { + shield->RemoveLayout(); + }); + shields_.clear(); if (Settings::Instance().lockscreen_type() == Type::UNITY) @@ -231,7 +236,7 @@ void Controller::ShowShields() void Controller::OnUnlockRequested() { - lockscreen_timeout_.release(); + lockscreen_timeout_.reset(); if (!IsLocked()) return; |
