summaryrefslogtreecommitdiffstats
path: root/src/xprivate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/xprivate.cpp')
-rw-r--r--src/xprivate.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/xprivate.cpp b/src/xprivate.cpp
index 15447b7..ba5b805 100644
--- a/src/xprivate.cpp
+++ b/src/xprivate.cpp
@@ -181,9 +181,19 @@ void XPrivate::updateScreenResources()
_allOutputs.append(outputName);
tempMap.insert(_screenResources->outputs[i], outputName);
if (info->connection == RR_Disconnected) {
+ bool ign = !_crtcMap.contains(info->crtc);
+ if (!ign) {
+ ign = !_modeMap.contains(_crtcMap[info->crtc]->mode);
+ }
+ if (!ign) {
+ auto mode = _modeMap[_crtcMap[info->crtc]->mode];
+ ign = (mode->width == 0 || mode->height == 0);
+ }
+ if (ign) {
qDebug() << "Ignoring disconnected output" << outputName;
XRRFreeOutputInfo(info);
continue;
+ }
}
bool disconnected = false;
if (info->crtc == None && info->connection == RR_Connected) {