forked from pool/xorg-x11-server
25 lines
832 B
Diff
25 lines
832 B
Diff
|
commit f7dd0c72b8f861f4d5443a43d1013e3fe3db43ca
|
||
|
Author: Matthias Hopf <mhopf@suse.de>
|
||
|
Date: Mon Nov 12 15:11:03 2007 +0100
|
||
|
|
||
|
Only clear crtc of output if it is the one we're actually working on.
|
||
|
|
||
|
Upon recreation of the RandR internal data structures in RRCrtcNotify() the
|
||
|
crtc of an output could be NULLed if the crtc was shared (cloned) between two
|
||
|
outputs and one of them got another crtc assigned.
|
||
|
|
||
|
diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
|
||
|
index db5007e..43cfb29 100644
|
||
|
--- a/randr/rrcrtc.c
|
||
|
+++ b/randr/rrcrtc.c
|
||
|
@@ -150,7 +150,8 @@ RRCrtcNotify (RRCrtcPtr crtc,
|
||
|
break;
|
||
|
if (i == numOutputs)
|
||
|
{
|
||
|
- crtc->outputs[j]->crtc = NULL;
|
||
|
+ if (crtc->outputs[j]->crtc == crtc)
|
||
|
+ crtc->outputs[j]->crtc = NULL;
|
||
|
RROutputChanged (crtc->outputs[j], FALSE);
|
||
|
RRCrtcChanged (crtc, FALSE);
|
||
|
}
|