Changeset View
Changeset View
Standalone View
Standalone View
daemon/actions/bundled/dimdisplay.cpp
Show All 17 Lines | |||||
18 | ***************************************************************************/ | 18 | ***************************************************************************/ | ||
19 | 19 | | |||
20 | #include "dimdisplay.h" | 20 | #include "dimdisplay.h" | ||
21 | 21 | | |||
22 | #include <powerdevilbackendinterface.h> | 22 | #include <powerdevilbackendinterface.h> | ||
23 | #include <powerdevil_debug.h> | 23 | #include <powerdevil_debug.h> | ||
24 | 24 | | |||
25 | #include <QDebug> | 25 | #include <QDebug> | ||
26 | #include <QTimer> | ||||
26 | 27 | | |||
27 | #include <KConfigGroup> | 28 | #include <KConfigGroup> | ||
28 | #include <KLocalizedString> | 29 | #include <KLocalizedString> | ||
29 | 30 | | |||
30 | namespace PowerDevil { | 31 | namespace PowerDevil { | ||
31 | namespace BundledActions { | 32 | namespace BundledActions { | ||
32 | 33 | | |||
33 | DimDisplay::DimDisplay(QObject* parent) : Action(parent) | 34 | DimDisplay::DimDisplay(QObject* parent) : Action(parent) | ||
34 | { | 35 | { | ||
35 | setRequiredPolicies(PowerDevil::PolicyAgent::ChangeScreenSettings); | 36 | setRequiredPolicies(PowerDevil::PolicyAgent::ChangeScreenSettings); | ||
36 | } | 37 | } | ||
37 | 38 | | |||
38 | void DimDisplay::onProfileUnload() | 39 | void DimDisplay::onProfileUnload() | ||
39 | { | 40 | { | ||
40 | 41 | | |||
41 | } | 42 | } | ||
42 | 43 | | |||
43 | void DimDisplay::onWakeupFromIdle() | 44 | void DimDisplay::onWakeupFromIdle() | ||
44 | { | 45 | { | ||
45 | if (!m_dimmed) { | 46 | if (!m_dimmed) { | ||
46 | return; | 47 | return; | ||
47 | } | 48 | } | ||
48 | // An active inhibition may not let us restore the brightness. | 49 | // An active inhibition may not let us restore the brightness. | ||
49 | // Let's override it so that we don't leave the user with a dimmed screen. | 50 | // We should wait a bit screen to wake-up from sleep | ||
51 | QTimer::singleShot(0, this, [this]() { | ||||
50 | setBrightnessHelper(m_oldScreenBrightness, m_oldKeyboardBrightness, true); | 52 | setBrightnessHelper(m_oldScreenBrightness, m_oldKeyboardBrightness, true); | ||
53 | }); | ||||
51 | m_dimmed = false; | 54 | m_dimmed = false; | ||
52 | } | 55 | } | ||
53 | 56 | | |||
54 | void DimDisplay::onIdleTimeout(int msec) | 57 | void DimDisplay::onIdleTimeout(int msec) | ||
55 | { | 58 | { | ||
56 | if (backend()->brightness() == 0) { | 59 | if (backend()->brightness() == 0) { | ||
57 | //Some drivers report brightness == 0 when display is off because of DPMS | 60 | //Some drivers report brightness == 0 when display is off because of DPMS | ||
58 | //(especially Intel driver). Don't change brightness in this case, or | 61 | //(especially Intel driver). Don't change brightness in this case, or | ||
▲ Show 20 Lines • Show All 71 Lines • Show Last 20 Lines |