mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-01-03 18:40:12 +01:00
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.
This commit is contained in:
parent
e1dea151db
commit
c10df5b967
1 changed files with 13 additions and 5 deletions
|
|
@ -116,11 +116,19 @@ RRDeliverScreenEvent (ClientPtr client, WindowPtr pWin, ScreenPtr pScreen)
|
|||
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue