summaryrefslogtreecommitdiff
path: root/lockscreen
diff options
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2014-04-09 21:09:51 +0200
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2014-04-09 21:09:51 +0200
commit762d087cd6b70add1bb2964de0ee574d3771d46d (patch)
treebc35a2bd01aa1f90fcc30f6a5f4fad01d4ec068d /lockscreen
parent83c8a1cce8064b14fa10187def46eb79ae6d54ca (diff)
LockScreenController: also hide BlankWindow on mouse and keyboard down events
(bzr r3736.1.33)
Diffstat (limited to 'lockscreen')
-rw-r--r--lockscreen/LockScreenController.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/lockscreen/LockScreenController.cpp b/lockscreen/LockScreenController.cpp
index 5c23074b6..dfb6574d7 100644
--- a/lockscreen/LockScreenController.cpp
+++ b/lockscreen/LockScreenController.cpp
@@ -37,6 +37,14 @@ namespace
const unsigned int IDLE_FADE_DURATION = 10000;
const unsigned int LOCK_FADE_DURATION = 400;
const unsigned int POST_LOCK_SCREENSAVER_WAIT = 2000;
+
+class BlankWindow : public nux::BaseWindow
+{
+public:
+ BlankWindow() : nux::BaseWindow("UnityScreensaver") {}
+ bool AcceptKeyNavFocus() override { return true; }
+ bool InspectKeyEvent(unsigned int, unsigned int, const char*) override { return true; };
+};
}
DECLARE_LOGGER(logger, "unity.lockscreen");
@@ -133,12 +141,15 @@ Controller::Controller(DBusManager::Ptr const& dbus_manager,
blank_window_->GrabPointer();
blank_window_->GrabKeyboard();
blank_window_->PushToFront();
- blank_window_->mouse_move.connect([this](int, int, int dx, int dy, unsigned long, unsigned long) {
- if (dx || dy)
- {
- HideBlankWindow();
- lockscreen_delay_timeout_.reset();
- }
+
+ 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();
});
}
}
@@ -240,7 +251,7 @@ void Controller::EnsureBlankWindow()
if (!blank_window_)
{
- blank_window_ = new nux::BaseWindow();
+ blank_window_ = new BlankWindow();
blank_window_->SetBackgroundLayer(new nux::ColorLayer(nux::color::Black, true));
blank_window_->SetOpacity(blank_window_animator_.GetCurrentValue());
blank_window_->ShowWindow(true);
@@ -265,6 +276,7 @@ void Controller::HideBlankWindow()
blank_window_->ShowWindow(false);
blank_window_.Release();
animation::SetValue(blank_window_animator_, animation::Direction::BACKWARD);
+ lockscreen_delay_timeout_.reset();
}
void Controller::OnLockRequested(bool prompt)