summaryrefslogtreecommitdiff
path: root/lockscreen
diff options
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2014-04-09 23:05:33 +0200
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2014-04-09 23:05:33 +0200
commitf61b89e46812f7f98ef487616688afc32d60778d (patch)
treeb9a69924eba61a7532554de2987e1f115d85c515 /lockscreen
parent18a84be38e75cc2f3a3eaf0b3e336031c0969e25 (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.cpp106
-rw-r--r--lockscreen/LockScreenController.h1
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();