]> source.dussan.org Git - tigervnc.git/commitdiff
Adjust dimensions for rotated monitors 553/head
authorPierre Ossman <ossman@cendio.se>
Thu, 7 Dec 2017 14:17:58 +0000 (15:17 +0100)
committerPierre Ossman <ossman@cendio.se>
Thu, 7 Dec 2017 14:17:58 +0000 (15:17 +0100)
We need to flip the dimensions in the case the monitor is rotated
90° or they won't map correctly to the framebuffer.

unix/xserver/hw/vnc/XorgGlue.c

index 8c1e08572723a0642c90478e1d22e3d975840f4a..141023a86dee1df4ec57772faae795c30239a868 100644 (file)
@@ -305,11 +305,21 @@ void vncRandRGetOutputDimensions(int scrIdx, int outputIdx,
 {
 #ifdef RANDR
   rrScrPrivPtr rp = rrGetScrPriv(screenInfo.screens[scrIdx]);
+  int swap;
 
   *x = rp->outputs[outputIdx]->crtc->x;
   *y = rp->outputs[outputIdx]->crtc->y;
   *width = rp->outputs[outputIdx]->crtc->mode->mode.width;
   *height = rp->outputs[outputIdx]->crtc->mode->mode.height;
+
+  switch (rp->outputs[outputIdx]->crtc->rotation & 0xf) {
+  case RR_Rotate_90:
+  case RR_Rotate_270:
+    swap = *width;
+    *width = *height;
+    *height = swap;
+    break;
+  }
 #endif
 }