diff --git a/hw/xquartz/quartzRandR.c b/hw/xquartz/quartzRandR.c index ede7969c7..05641a65d 100644 --- a/hw/xquartz/quartzRandR.c +++ b/hw/xquartz/quartzRandR.c @@ -413,16 +413,6 @@ static Bool QuartzRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) { if (pQuartzScreen->displayCount == 0) 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); } diff --git a/hw/xquartz/xpr/xprScreen.c b/hw/xquartz/xpr/xprScreen.c index cba358f8b..6e6d06e6b 100644 --- a/hw/xquartz/xpr/xprScreen.c +++ b/hw/xquartz/xpr/xprScreen.c @@ -196,6 +196,13 @@ xprAddPseudoramiXScreens(int *x, int *y, int *width, int *height, ScreenPtr pScr 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)); if(!displayList) FatalError("Unable to allocate memory for list of displays.\n");