diff options
author | Charles Kerr <charles.kerr@canonical.com> | 2016-04-22 09:43:44 -0500 |
---|---|---|
committer | Charles Kerr <charles.kerr@canonical.com> | 2016-04-22 09:43:44 -0500 |
commit | ce5234162fa0c534ff9abf3fce3d03f4b01e893e (patch) | |
tree | fa1de28390d3fad05b9a9405190f82cde3fa70e5 /src/usb-manager.cpp | |
parent | b37db33c628675971f118fb3e241dc32a9f0a5d0 (diff) | |
download | ayatana-indicator-display-ce5234162fa0c534ff9abf3fce3d03f4b01e893e.tar.gz ayatana-indicator-display-ce5234162fa0c534ff9abf3fce3d03f4b01e893e.tar.bz2 ayatana-indicator-display-ce5234162fa0c534ff9abf3fce3d03f4b01e893e.zip |
don't prompt when the greeter's not running yet: change greeter's payload from an 'is_active' bool to a three-value state of active, inactive, and unavailable
Diffstat (limited to 'src/usb-manager.cpp')
-rw-r--r-- | src/usb-manager.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/usb-manager.cpp b/src/usb-manager.cpp index 4d750c0..80b274b 100644 --- a/src/usb-manager.cpp +++ b/src/usb-manager.cpp @@ -49,7 +49,7 @@ public: restart(); }); - m_greeter->is_active().changed().connect([this](bool /*is_active*/) { + m_greeter->state().changed().connect([this](Greeter::State /*state*/) { maybe_snap(); }); @@ -92,9 +92,15 @@ private: void maybe_snap() { - // don't prompt in the greeter! - if (!m_req.public_key.empty() && !m_greeter->is_active().get()) - snap(); + // only prompt if there's something to prompt about + if (m_req.public_key.empty()) + return; + + // only prompt in an unlocked session + if (m_greeter->state().get() != Greeter::State::INACTIVE) + return; + + snap(); } void snap() |