[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [libkscreen/apol/libkscreen] backends/xrandr: Actually work
From: Aleix Pol <null () kde ! org>
Date: 2018-09-27 0:26:11
Message-ID: E1g5K8B-0006hQ-Mt () code ! kde ! org
[Download RAW message or body]
Git commit ccae879fb8a2c201cd8f5fe5e25d7b10c4d4636c by Aleix Pol.
Committed on 27/09/2018 at 00:24.
Pushed by apol into branch 'apol/libkscreen'.
Actually work
M +2 -4 backends/xrandr/xrandr.cpp
M +3 -1 backends/xrandr/xrandroutput.cpp
M +1 -0 backends/xrandr/xrandroutput.h
https://commits.kde.org/libkscreen/ccae879fb8a2c201cd8f5fe5e25d7b10c4d4636c
diff --git a/backends/xrandr/xrandr.cpp b/backends/xrandr/xrandr.cpp
index e1dffa9..955024a 100644
--- a/backends/xrandr/xrandr.cpp
+++ b/backends/xrandr/xrandr.cpp
@@ -284,11 +284,9 @@ bool XRandR::hasProperty(xcb_randr_output_t output, const \
QByteArray& name)
auto cookie = xcb_randr_get_output_property(XCB::connection(), output, atom, \
XCB_ATOM_ANY, 0, 1, false, false);
auto prop_reply = xcb_randr_get_output_property_reply (XCB::connection(), \
cookie, &error);
- const bool ret = error == nullptr;
- qDebug() << "has" << name << ret << error;
-
+ const bool ret = prop_reply->num_items == 1;
free(prop_reply);
- return cookie.sequence;
+ return ret;
}
xcb_randr_get_screen_resources_reply_t* XRandR::screenResources()
diff --git a/backends/xrandr/xrandroutput.cpp b/backends/xrandr/xrandroutput.cpp
index 2945bc5..5865c7e 100644
--- a/backends/xrandr/xrandroutput.cpp
+++ b/backends/xrandr/xrandroutput.cpp
@@ -175,6 +175,7 @@ void XRandROutput::update(xcb_randr_crtc_t crtc, xcb_randr_mode_t \
mode, xcb_rand
// Primary has changed
m_primary = primary;
+ m_hotplugModeUpdate = XRandR::hasProperty(m_id, "hotplug_mode_update");
}
void XRandROutput::setIsPrimary(bool primary)
@@ -208,6 +209,7 @@ void XRandROutput::init()
if (m_crtc) {
m_crtc->connectOutput(m_id);
}
+ m_hotplugModeUpdate = XRandR::hasProperty(m_id, "hotplug_mode_update");
updateModes(outputInfo);
}
@@ -306,7 +308,7 @@ KScreen::OutputPtr XRandROutput::toKScreenOutput() const
//See https://bugzilla.redhat.com/show_bug.cgi?id=1290586
//QXL will be creating a new mode we need to jump to every time the display is \
resized
- kscreenOutput->setFollowPreferredMode(XRandR::hasProperty(m_id, \
"hotplug_mode_update")); + \
kscreenOutput->setFollowPreferredMode(m_hotplugModeUpdate);
kscreenOutput->setConnected(isConnected());
if (isConnected()) {
diff --git a/backends/xrandr/xrandroutput.h b/backends/xrandr/xrandroutput.h
index 1b656f5..bb58dcb 100644
--- a/backends/xrandr/xrandroutput.h
+++ b/backends/xrandr/xrandroutput.h
@@ -90,6 +90,7 @@ private:
mutable QByteArray m_edid;
unsigned int m_widthMm;
unsigned int m_heightMm;
+ bool m_hotplugModeUpdate = false;
XRandRCrtc *m_crtc;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic