[PATCH 2/4] randr: make SetChanged modify the main protocol screen not the gpu screen

Dave Airlie airlied at gmail.com
Tue Jan 8 20:32:48 PST 2013


From: Dave Airlie <airlied at redhat.com>

When SetChanged is called we now modify the main protocol screen,
not the the gpu screen. Since changed stuff should work at the protocol level.

Signed-off-by: Dave Airlie <airlied at redhat.com>
---
 randr/randr.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/randr/randr.c b/randr/randr.c
index 11f88b2..fb0895d 100644
--- a/randr/randr.c
+++ b/randr/randr.c
@@ -467,9 +467,23 @@ TellChanged(WindowPtr pWin, pointer value)
 void
 RRSetChanged(ScreenPtr pScreen)
 {
+    /* set changed bits on the master screen only */
+    ScreenPtr master;
     rrScrPriv(pScreen);
+    rrScrPrivPtr mastersp;
+
+    if (pScreen->isGPU) {
+        master = pScreen->current_master;
+        if (!master)
+            return;
+        mastersp = rrGetScrPriv(master);
+    }
+    else {
+        master = pScreen;
+        mastersp = pScrPriv;
+    }
 
-    pScrPriv->changed = TRUE;
+    mastersp->changed = TRUE;
 }
 
 /*
-- 
1.8.1



More information about the xorg-devel mailing list