[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