summaryrefslogtreecommitdiff
path: root/randr/randr.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2013-01-09 14:29:47 +1000
committerDave Airlie <airlied@redhat.com>2013-04-30 10:08:43 +1000
commitb3f70f38edebac87afe9351538365292f1aaaff3 (patch)
tree5e47df99837c12c97b465f47ac8039e6e4f4cc3e /randr/randr.c
parentf9c8248b8326ad01f33f31531c6b2479baf80f02 (diff)
randr: make SetChanged modify the main protocol screen not the gpu screen
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. Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'randr/randr.c')
-rw-r--r--randr/randr.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/randr/randr.c b/randr/randr.c
index 11f88b2b4..fb0895d7a 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;
}
/*