diff options
| author | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2014-04-09 23:05:33 +0200 |
|---|---|---|
| committer | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2014-04-09 23:05:33 +0200 |
| commit | f61b89e46812f7f98ef487616688afc32d60778d (patch) | |
| tree | b9a69924eba61a7532554de2987e1f115d85c515 /lockscreen | |
| parent | 18a84be38e75cc2f3a3eaf0b3e336031c0969e25 (diff) | |
LockScreenController: even more cleanup, move blank window grabbing to own function
(bzr r3736.1.35)
Diffstat (limited to 'lockscreen')
| -rw-r--r-- | lockscreen/LockScreenController.cpp | 106 | ||||
| -rw-r--r-- | lockscreen/LockScreenController.h | 1 |
2 files changed, 55 insertions, 52 deletions
diff --git a/lockscreen/LockScreenController.cpp b/lockscreen/LockScreenController.cpp index dfb6574d7..1e6339af8 100644 --- a/lockscreen/LockScreenController.cpp +++ b/lockscreen/LockScreenController.cpp @@ -116,61 +116,19 @@ Controller::Controller(DBusManager::Ptr const& dbus_manager, }); blank_window_animator_.finished.connect([this] { - if (blank_window_animator_.GetCurrentValue() == 1.0) - { - dbus_manager_->active = true; - - if (Settings::Instance().lock_on_blank()) - { - int lock_delay = Settings::Instance().lock_delay(); - - lockscreen_delay_timeout_.reset(new glib::TimeoutSeconds(lock_delay, [this] { - session_manager_->PromptLockScreen(); - return false; - })); - } - - std::for_each(shields_.begin(), shields_.end(), [](nux::ObjectPtr<Shield> const& shield) { - shield->UnGrabPointer(); - shield->UnGrabKeyboard(); - }); + bool shown = blank_window_animator_.GetCurrentValue() == 1.0; + BlankWindowGrabEnable(shown); + dbus_manager_->active = shown; + lockscreen_delay_timeout_.reset(); - if (blank_window_) - { - blank_window_->EnableInputWindow(true); - blank_window_->GrabPointer(); - blank_window_->GrabKeyboard(); - blank_window_->PushToFront(); - - blank_window_->mouse_move.connect([this](int, int, int, int, unsigned long, unsigned long) { - HideBlankWindow(); - }); - blank_window_->key_down.connect([this] (unsigned long, unsigned long e, unsigned long, const char*, unsigned short) { - HideBlankWindow(); - }); - blank_window_->mouse_down.connect([this] (int, int, unsigned long, unsigned long) { - HideBlankWindow(); - }); - } - } - else + if (shown && Settings::Instance().lock_on_blank()) { - dbus_manager_->active = false; - lockscreen_delay_timeout_.reset(); - - if (blank_window_) - { - blank_window_->UnGrabPointer(); - blank_window_->UnGrabKeyboard(); - } - - std::for_each(shields_.begin(), shields_.end(), [](nux::ObjectPtr<Shield> const& shield) { - if (!shield->primary()) - return; + int lock_delay = Settings::Instance().lock_delay(); - shield->GrabPointer(); - shield->GrabKeyboard(); - }); + lockscreen_delay_timeout_.reset(new glib::TimeoutSeconds(lock_delay, [this] { + session_manager_->PromptLockScreen(); + return false; + })); } }); } @@ -279,6 +237,50 @@ void Controller::HideBlankWindow() lockscreen_delay_timeout_.reset(); } +void Controller::BlankWindowGrabEnable(bool grab) +{ + if (!blank_window_) + return; + + if (grab) + { + for (auto const& shield : shields_) + { + shield->UnGrabPointer(); + shield->UnGrabKeyboard(); + } + + blank_window_->EnableInputWindow(true); + blank_window_->GrabPointer(); + blank_window_->GrabKeyboard(); + blank_window_->PushToFront(); + + blank_window_->mouse_move.connect([this](int, int, int, int, unsigned long, unsigned long) { + HideBlankWindow(); + }); + blank_window_->key_down.connect([this] (unsigned long, unsigned long e, unsigned long, const char*, unsigned short) { + HideBlankWindow(); + }); + blank_window_->mouse_down.connect([this] (int, int, unsigned long, unsigned long) { + HideBlankWindow(); + }); + } + else + { + blank_window_->UnGrabPointer(); + blank_window_->UnGrabKeyboard(); + + for (auto const& shield : shields_) + { + if (!shield->primary()) + continue; + + shield->GrabPointer(); + shield->GrabKeyboard(); + } + } +} + void Controller::OnLockRequested(bool prompt) { if (Settings::Instance().use_legacy()) diff --git a/lockscreen/LockScreenController.h b/lockscreen/LockScreenController.h index f3d8db164..f06c56f21 100644 --- a/lockscreen/LockScreenController.h +++ b/lockscreen/LockScreenController.h @@ -57,6 +57,7 @@ private: void HideShields(); void ShowBlankWindow(); void HideBlankWindow(); + void BlankWindowGrabEnable(bool grab); void SimulateActivity(); void ResetPostLockScreenSaver(); |
