XQuartz: RandR: Add RandR modes for the primary display in multi-monitor configs
We now support using RandR to set the resolution of the primary display (and place a shielding window on other displays) in multi-monitor configurations. Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
This commit is contained in:
		
							parent
							
								
									968652983f
								
							
						
					
					
						commit
						8cf3348e90
					
				| 
						 | 
					@ -413,16 +413,6 @@ static Bool QuartzRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) {
 | 
				
			||||||
    if (pQuartzScreen->displayCount == 0)
 | 
					    if (pQuartzScreen->displayCount == 0)
 | 
				
			||||||
        return FALSE;
 | 
					        return FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (pQuartzScreen->displayCount > 1) {
 | 
					 | 
				
			||||||
        /* RandR operations are not well-defined for an X11 screen spanning
 | 
					 | 
				
			||||||
           multiple CG displays. Create two entries for the current virtual
 | 
					 | 
				
			||||||
           resolution including/excluding the menu bar. */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        QuartzRandRRegisterMode(pScreen, &pQuartzScreen->rootlessMode);
 | 
					 | 
				
			||||||
        QuartzRandRRegisterMode(pScreen, &pQuartzScreen->fullscreenMode);
 | 
					 | 
				
			||||||
        return TRUE;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return QuartzRandREnumerateModes(pScreen, QuartzRandRRegisterModeCallback, NULL);
 | 
					    return QuartzRandREnumerateModes(pScreen, QuartzRandRRegisterModeCallback, NULL);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -196,6 +196,13 @@ xprAddPseudoramiXScreens(int *x, int *y, int *width, int *height, ScreenPtr pScr
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* If the displays are captured, we are in a RandR game mode
 | 
				
			||||||
 | 
					     * on the primary display, so we only want to include the first
 | 
				
			||||||
 | 
					     * display.  The others are covered by the shield window.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    if (CGDisplayIsCaptured(kCGDirectMainDisplay))
 | 
				
			||||||
 | 
					        displayCount = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    displayList = malloc(displayCount * sizeof(CGDirectDisplayID));
 | 
					    displayList = malloc(displayCount * sizeof(CGDirectDisplayID));
 | 
				
			||||||
    if(!displayList)
 | 
					    if(!displayList)
 | 
				
			||||||
        FatalError("Unable to allocate memory for list of displays.\n");
 | 
					        FatalError("Unable to allocate memory for list of displays.\n");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue