1 --- kde-workspace-4.8.2/powerdevil/daemon/backends/upower/powerdevilupowerbackend.h~ 2012-03-30 00:02:31.000000000 +0200
2 +++ kde-workspace-4.8.2/powerdevil/daemon/backends/upower/powerdevilupowerbackend.h 2012-04-19 23:54:03.961628717 +0200
6 float m_cachedBrightness;
7 + QElapsedTimer m_cachedBrightness_timer;
8 XRandrBrightness *m_brightnessControl;
9 OrgFreedesktopUPowerInterface *m_upowerInterface;
10 OrgFreedesktopUPowerKbdBacklightInterface *m_kbdBacklight;
11 --- kde-workspace-4.8.2/powerdevil/daemon/backends/upower/powerdevilupowerbackend.cpp~ 2012-03-30 00:02:31.000000000 +0200
12 +++ kde-workspace-4.8.2/powerdevil/daemon/backends/upower/powerdevilupowerbackend.cpp 2012-04-19 23:56:23.768337437 +0200
15 if (!controls.isEmpty()) {
16 m_cachedBrightness = brightness(Screen);
17 + m_cachedBrightness_timer.start();
18 kDebug() << "current screen brightness: " << m_cachedBrightness;
23 void PowerDevilUPowerBackend::brightnessKeyPressed(PowerDevil::BackendInterface::BrightnessKeyType type)
25 + if (m_cachedBrightness_timer.elapsed() < 100)
26 + return; // two key presses delivered for single physical key press; 100ms marign
28 BrightnessControlsList controls = brightnessControlsAvailable();
29 QList<QString> screenControls = controls.keys(Screen);
32 if (qFuzzyCompare(currentBrightness, m_cachedBrightness)) {
34 if (type == Increase) {
35 - newBrightness = qMin(100.0f, currentBrightness + 10);
36 + newBrightness = qMin(100.0f, currentBrightness + 6);
38 - newBrightness = qMax(0.0f, currentBrightness - 10);
39 + newBrightness = qMax(0.0f, currentBrightness - 6);
42 if (setBrightness(newBrightness, Screen)) {
44 newBrightness = brightness(Screen);
45 if (!qFuzzyCompare(newBrightness, m_cachedBrightness)) {
46 m_cachedBrightness = newBrightness;
47 + m_cachedBrightness_timer.restart();
48 onBrightnessChanged(Screen, m_cachedBrightness);
52 m_cachedBrightness = currentBrightness;
53 + m_cachedBrightness_timer.restart();
54 + onBrightnessChanged(Screen, m_cachedBrightness);