summaryrefslogtreecommitdiff
path: root/hw/xfree86/modes/xf86Rotate.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@neko.keithp.com>2007-04-19 17:37:18 -0700
committerKeith Packard <keithp@neko.keithp.com>2007-04-19 17:49:48 -0700
commit7ca4baffb5569ea12b578a4a3f69e93d272d6c6d (patch)
tree9d26f80de66fe4b0534babd41b9469dac0d61f43 /hw/xfree86/modes/xf86Rotate.c
parent806a537e644d8cc9e53f3ac52efb49453e5aa1fb (diff)
Was accidentally disabling rotation updates in mode set.
Setting a mode on an unrotated CRTC was causing all of the rotation updates to be disabled; the loop looking for active rotation wasn't actually looking at each crtc, it was looking at the modified crtc many times. (cherry picked from commit 8b217dee3a6c46b13fc9571a4a9a95bc55686cdb)
Diffstat (limited to 'hw/xfree86/modes/xf86Rotate.c')
-rw-r--r--hw/xfree86/modes/xf86Rotate.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c
index e8fafd073..94f95a0d7 100644
--- a/hw/xfree86/modes/xf86Rotate.c
+++ b/hw/xfree86/modes/xf86Rotate.c
@@ -284,7 +284,7 @@ xf86RotateRedisplay(ScreenPtr pScreen)
{
xf86CrtcPtr crtc = xf86_config->crtc[c];
- if (crtc->rotation != RR_Rotate_0)
+ if (crtc->rotation != RR_Rotate_0 && crtc->enabled)
{
BoxRec box;
RegionRec crtc_damage;
@@ -338,7 +338,8 @@ xf86RotateDestroy (xf86CrtcPtr crtc)
}
for (c = 0; c < xf86_config->num_crtc; c++)
- if (crtc->rotatedPixmap || crtc->rotatedData)
+ if (xf86_config->crtc[c]->rotatedPixmap ||
+ xf86_config->crtc[c]->rotatedData)
return;
/*