diff --git a/backends/xrandr/xrandrconfig.cpp b/backends/xrandr/xrandrconfig.cpp --- a/backends/xrandr/xrandrconfig.cpp +++ b/backends/xrandr/xrandrconfig.cpp @@ -498,6 +498,7 @@ XRandRCrtc *freeCrtc = Q_NULLPTR; qCDebug(KSCREEN_XRANDR) << m_crtcs; Q_FOREACH (XRandRCrtc *crtc, m_crtcs) { + crtc->update(); qCDebug(KSCREEN_XRANDR) << "Testing CRTC" << crtc->crtc(); qCDebug(KSCREEN_XRANDR) << "\tFree:" << crtc->isFree(); qCDebug(KSCREEN_XRANDR) << "\tMode:" << crtc->mode(); diff --git a/backends/xrandr/xrandrcrtc.cpp b/backends/xrandr/xrandrcrtc.cpp --- a/backends/xrandr/xrandrcrtc.cpp +++ b/backends/xrandr/xrandrcrtc.cpp @@ -66,6 +66,7 @@ bool XRandRCrtc::connectOutput(xcb_randr_output_t output) { + update(); qCDebug(KSCREEN_XRANDR) << "Connected output" << output << "to CRTC" << m_crtc; if (!m_possibleOutputs.contains(output)) { qCDebug(KSCREEN_XRANDR) << "Output" << output << "is not an allowed output for CRTC" << m_crtc; @@ -80,6 +81,7 @@ void XRandRCrtc::disconectOutput(xcb_randr_output_t output) { + update(); qCDebug(KSCREEN_XRANDR) << "Disconnected output" << output << "from CRTC" << m_crtc; const int index = m_outputs.indexOf(output); if (index > -1) {