| 1 |
Title : xorg-server-1.3: desktop does not resize with RandR
|
| 2 |
Assignee : x11@gentoo.org
|
| 3 |
Reported : 2007-06-30 11:37 0000
|
| 4 |
Updated : 2007-10-06 08:32:58 0000
|
| 5 |
Status : ASSIGNED
|
| 6 |
Severity : normal
|
| 7 |
Priority : P2
|
| 8 |
Reporter : sascha.lucas@rus.uni-stuttgart.de
|
| 9 |
Product : Gentoo Linux
|
| 10 |
Component : KDE
|
| 11 |
Keywords : Inclusion
|
| 12 |
CC : caster@gentoo.org
|
| 13 |
CC : chrschmitt@gmail.com
|
| 14 |
CC : gentoo@chlhp.de
|
| 15 |
CC : kde@gentoo.org
|
| 16 |
Comments : 14
|
| 17 |
Attachments : 0
|
| 18 |
URL : http://bugs.gentoo.org/show_bug.cgi?id=183721
|
| 19 |
|
| 20 |
commit c10df5b967d4da4e11786520317e2917de5541fa
|
| 21 |
Author: Aaron Plattner <aplattner@nvidia.com>
|
| 22 |
Date: Tue Apr 3 15:47:01 2007 -0700
|
| 23 |
|
| 24 |
Swap RRScreenChangeNotifyEvent dimensions when the screen has one crtc and it's rotated.
|
| 25 |
|
| 26 |
RandR 1.1 clients expect the size fields in this event to be the unrotated
|
| 27 |
dimensions of the screen. This behavior is "weird", but that's the way the old
|
| 28 |
code worked so we need to be bug-compatible with it.
|
| 29 |
|
| 30 |
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
|
| 31 |
index ad74ac3..f83fce3 100644
|
| 32 |
--- a/randr/rrscreen.c
|
| 33 |
+++ b/randr/rrscreen.c
|
| 34 |
@@ -116,11 +116,19 @@ RRDeliverScreenEvent (ClientPtr client, WindowPtr pWin, ScreenPtr pScreen)
|
| 35 |
|
| 36 |
se.sequenceNumber = client->sequence;
|
| 37 |
se.sizeID = RR10CurrentSizeID (pScreen);
|
| 38 |
-
|
| 39 |
- se.widthInPixels = pScreen->width;
|
| 40 |
- se.heightInPixels = pScreen->height;
|
| 41 |
- se.widthInMillimeters = pScreen->mmWidth;
|
| 42 |
- se.heightInMillimeters = pScreen->mmHeight;
|
| 43 |
+
|
| 44 |
+ if (se.rotation & (RR_Rotate_90 | RR_Rotate_270)) {
|
| 45 |
+ se.widthInPixels = pScreen->height;
|
| 46 |
+ se.heightInPixels = pScreen->width;
|
| 47 |
+ se.widthInMillimeters = pScreen->mmHeight;
|
| 48 |
+ se.heightInMillimeters = pScreen->mmWidth;
|
| 49 |
+ } else {
|
| 50 |
+ se.widthInPixels = pScreen->width;
|
| 51 |
+ se.heightInPixels = pScreen->height;
|
| 52 |
+ se.widthInMillimeters = pScreen->mmWidth;
|
| 53 |
+ se.heightInMillimeters = pScreen->mmHeight;
|
| 54 |
+ }
|
| 55 |
+
|
| 56 |
WriteEventsToClient (client, 1, (xEvent *) &se);
|
| 57 |
}
|
| 58 |
|