Skip to content
Commit ca614feb authored by Aleksei Nikiforov's avatar Aleksei Nikiforov Committed by Kai Uwe Broulik
Browse files

Prevent powerdevil from calling DPMS extension calls when DPMS extension isn't present

When DPMS extension isn't available, powerdevil unexpectedly exits due to a call to unavailable DPMS function and Qt error handling for such errors.

Following is a full log of powerdevil process when DPMS extension isn't present:

```
$ /usr/libexec/kf5/org_kde_powerdevil
QDBusArgument: read from a write-only object
QDBusArgument: read from a write-only object
QDBusArgument: read from a write-only object
powerdevil: No outputs have backlight property
powerdevil: Xrandr not supported, trying ddc, helper
powerdevil: [DDCutilBrightness]  0 display(s) were detected
powerdevil: org.kde5.powerdevil.backlighthelper.brightness failed
powerdevil: DPMS extension not available
The X11 connection broke: Unsupported extension used (code 2)
XIO:  fatal IO error 2 (No such file or directory) on X server ":0"
      after 408 requests (408 known processed) with 0 events remaining.
```

This was detected while running KDE in a VM (without x2go). For some reason 'xdpyinfo -queryExtensions' didn't report DPMS extension being present.

Only change in 'PowerDevilDPMSAction::onProfileUnload' was required to fix issue for me, but changes in other functions could be needed as well, thus I implemented it. Two calls to m_helper, 'm_helper->startFade()' and 'm_helper->stopFade()', had corresponding conditions left intact since it looks like it doesn't call DPMS-related functions.

Differential Revision: https://phabricator.kde.org/D27278
parent 1ea37814
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment