xvfb: Use RROutputSetPhysicalSize to set physical size of display
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1532 Signed-off-by: Twaik Yont <twaikyont@gmail.com>
This commit is contained in:
		
							parent
							
								
									818130bb12
								
							
						
					
					
						commit
						43a7bb3c92
					
				| 
						 | 
					@ -753,6 +753,8 @@ vfbRRScreenSetSize(ScreenPtr  pScreen,
 | 
				
			||||||
                   CARD32     mmWidth,
 | 
					                   CARD32     mmWidth,
 | 
				
			||||||
                   CARD32     mmHeight)
 | 
					                   CARD32     mmHeight)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    rrScrPrivPtr pScrPriv = rrGetScrPriv(pScreen);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Prevent screen updates while we change things around
 | 
					    // Prevent screen updates while we change things around
 | 
				
			||||||
    SetRootClip(pScreen, ROOT_CLIP_NONE);
 | 
					    SetRootClip(pScreen, ROOT_CLIP_NONE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -767,7 +769,7 @@ vfbRRScreenSetSize(ScreenPtr  pScreen,
 | 
				
			||||||
    RRScreenSizeNotify (pScreen);
 | 
					    RRScreenSizeNotify (pScreen);
 | 
				
			||||||
    RRTellChanged(pScreen);
 | 
					    RRTellChanged(pScreen);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return TRUE;
 | 
					    return RROutputSetPhysicalSize(pScrPriv->outputs[pScreen->myNum], mmWidth, mmHeight);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static Bool
 | 
					static Bool
 | 
				
			||||||
| 
						 | 
					@ -803,6 +805,7 @@ vfbRandRInit(ScreenPtr pScreen)
 | 
				
			||||||
    xRRModeInfo modeInfo;
 | 
					    xRRModeInfo modeInfo;
 | 
				
			||||||
    char       name[64];
 | 
					    char       name[64];
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					    int mmWidth, mmHeight;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!RRScreenInit (pScreen))
 | 
					    if (!RRScreenInit (pScreen))
 | 
				
			||||||
       return FALSE;
 | 
					       return FALSE;
 | 
				
			||||||
| 
						 | 
					@ -818,6 +821,9 @@ vfbRandRInit(ScreenPtr pScreen)
 | 
				
			||||||
    pScrPriv->rrOutputValidateMode = vfbRROutputValidateMode;
 | 
					    pScrPriv->rrOutputValidateMode = vfbRROutputValidateMode;
 | 
				
			||||||
    pScrPriv->rrModeDestroy = NULL;
 | 
					    pScrPriv->rrModeDestroy = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    mmWidth = pScreen->width * 25.4 / monitorResolution;
 | 
				
			||||||
 | 
					    mmHeight = pScreen->height * 25.4 / monitorResolution;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    RRScreenSetSizeRange (pScreen,
 | 
					    RRScreenSetSizeRange (pScreen,
 | 
				
			||||||
                         1, 1,
 | 
					                         1, 1,
 | 
				
			||||||
                         pScreen->width, pScreen->height);
 | 
					                         pScreen->width, pScreen->height);
 | 
				
			||||||
| 
						 | 
					@ -850,6 +856,8 @@ vfbRandRInit(ScreenPtr pScreen)
 | 
				
			||||||
       return FALSE;
 | 
					       return FALSE;
 | 
				
			||||||
    if (!RROutputSetConnection (output, RR_Connected))
 | 
					    if (!RROutputSetConnection (output, RR_Connected))
 | 
				
			||||||
       return FALSE;
 | 
					       return FALSE;
 | 
				
			||||||
 | 
					    if (!RROutputSetPhysicalSize (output, mmWidth, mmHeight))
 | 
				
			||||||
 | 
					       return FALSE;
 | 
				
			||||||
    RRCrtcNotify (crtc, mode, 0, 0, RR_Rotate_0, NULL, 1, &output);
 | 
					    RRCrtcNotify (crtc, mode, 0, 0, RR_Rotate_0, NULL, 1, &output);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
    return TRUE;
 | 
					    return TRUE;
 | 
				
			||||||
| 
						 | 
					@ -958,6 +966,9 @@ InitOutput(ScreenInfo * screen_info, int argc, char **argv)
 | 
				
			||||||
    int i;
 | 
					    int i;
 | 
				
			||||||
    int NumFormats = 0;
 | 
					    int NumFormats = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!monitorResolution)
 | 
				
			||||||
 | 
					               monitorResolution = 96;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* initialize pixmap formats */
 | 
					    /* initialize pixmap formats */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* must have a pixmap depth to match every screen depth */
 | 
					    /* must have a pixmap depth to match every screen depth */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue