xserver: Branch 'master'
Aaron Plattner
aplattner at kemper.freedesktop.org
Wed Apr 4 02:09:42 EEST 2007
randr/rrscreen.c | 18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)
New commits:
diff-tree c10df5b967d4da4e11786520317e2917de5541fa (from e1dea151db6405e12d991feacba9446320739ee8)
Author: Aaron Plattner <aplattner at nvidia.com>
Date: Tue Apr 3 15:47:01 2007 -0700
Swap RRScreenChangeNotifyEvent dimensions when the screen has one crtc and it's rotated.
RandR 1.1 clients expect the size fields in this event to be the unrotated
dimensions of the screen. This behavior is "weird", but that's the way the old
code worked so we need to be bug-compatible with it.
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
index ad74ac3..f83fce3 100644
--- a/randr/rrscreen.c
+++ b/randr/rrscreen.c
@@ -116,11 +116,19 @@ RRDeliverScreenEvent (ClientPtr client,
se.sequenceNumber = client->sequence;
se.sizeID = RR10CurrentSizeID (pScreen);
-
- se.widthInPixels = pScreen->width;
- se.heightInPixels = pScreen->height;
- se.widthInMillimeters = pScreen->mmWidth;
- se.heightInMillimeters = pScreen->mmHeight;
+
+ if (se.rotation & (RR_Rotate_90 | RR_Rotate_270)) {
+ se.widthInPixels = pScreen->height;
+ se.heightInPixels = pScreen->width;
+ se.widthInMillimeters = pScreen->mmHeight;
+ se.heightInMillimeters = pScreen->mmWidth;
+ } else {
+ se.widthInPixels = pScreen->width;
+ se.heightInPixels = pScreen->height;
+ se.widthInMillimeters = pScreen->mmWidth;
+ se.heightInMillimeters = pScreen->mmHeight;
+ }
+
WriteEventsToClient (client, 1, (xEvent *) &se);
}
More information about the xorg-commit
mailing list