XQuartz: RandR: Fix mode changing for multi-monitor configurations.
This just fixes the regression whereby we couldn't switch between the legacy fullscreen mode and rootless on multi-monitor configurations. This was happening because ref wasn't being set in these cases (since we don't ever actually change CG modes), so we failed a CFEqual. Setting the references fixes this regression and places us one step closer to more mode RandR mode switching in multi-monitor configurations. Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
This commit is contained in:
		
							parent
							
								
									14f00449eb
								
							
						
					
					
						commit
						714b68d9e5
					
				| 
						 | 
					@ -438,7 +438,6 @@ static Bool QuartzRandRSetConfig (ScreenPtr           pScreen,
 | 
				
			||||||
static Bool _QuartzRandRUpdateFakeModes (ScreenPtr pScreen) {
 | 
					static Bool _QuartzRandRUpdateFakeModes (ScreenPtr pScreen) {
 | 
				
			||||||
    QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen);
 | 
					    QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (pQuartzScreen->displayCount == 1) {
 | 
					 | 
				
			||||||
    if(pQuartzScreen->fullscreenMode.ref)
 | 
					    if(pQuartzScreen->fullscreenMode.ref)
 | 
				
			||||||
        CFRelease(pQuartzScreen->fullscreenMode.ref);
 | 
					        CFRelease(pQuartzScreen->fullscreenMode.ref);
 | 
				
			||||||
    if(pQuartzScreen->currentMode.ref)
 | 
					    if(pQuartzScreen->currentMode.ref)
 | 
				
			||||||
| 
						 | 
					@ -448,8 +447,7 @@ static Bool _QuartzRandRUpdateFakeModes (ScreenPtr pScreen) {
 | 
				
			||||||
                                        &pQuartzScreen->fullscreenMode))
 | 
					                                        &pQuartzScreen->fullscreenMode))
 | 
				
			||||||
        return FALSE;
 | 
					        return FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        CFRetain(pQuartzScreen->fullscreenMode.ref);  /* This extra retain is for currentMode's copy */
 | 
					    if (pQuartzScreen->displayCount > 1) {
 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        pQuartzScreen->fullscreenMode.width = pScreen->width;
 | 
					        pQuartzScreen->fullscreenMode.width = pScreen->width;
 | 
				
			||||||
        pQuartzScreen->fullscreenMode.height = pScreen->height;
 | 
					        pQuartzScreen->fullscreenMode.height = pScreen->height;
 | 
				
			||||||
        if(XQuartzIsRootless)
 | 
					        if(XQuartzIsRootless)
 | 
				
			||||||
| 
						 | 
					@ -468,6 +466,11 @@ static Bool _QuartzRandRUpdateFakeModes (ScreenPtr pScreen) {
 | 
				
			||||||
        pQuartzScreen->currentMode = pQuartzScreen->fullscreenMode;
 | 
					        pQuartzScreen->currentMode = pQuartzScreen->fullscreenMode;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* This extra retain is for currentMode's copy.
 | 
				
			||||||
 | 
					     * fullscreen and rootless share a retain.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    CFRetain(pQuartzScreen->currentMode.ref);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    DEBUG_LOG("rootlessMode: %d x %d\n", (int)pQuartzScreen->rootlessMode.width, (int)pQuartzScreen->rootlessMode.height);
 | 
					    DEBUG_LOG("rootlessMode: %d x %d\n", (int)pQuartzScreen->rootlessMode.width, (int)pQuartzScreen->rootlessMode.height);
 | 
				
			||||||
    DEBUG_LOG("fullscreenMode: %d x %d\n", (int)pQuartzScreen->fullscreenMode.width, (int)pQuartzScreen->fullscreenMode.height);
 | 
					    DEBUG_LOG("fullscreenMode: %d x %d\n", (int)pQuartzScreen->fullscreenMode.width, (int)pQuartzScreen->fullscreenMode.height);
 | 
				
			||||||
    DEBUG_LOG("currentMode: %d x %d\n", (int)pQuartzScreen->currentMode.width, (int)pQuartzScreen->currentMode.height);
 | 
					    DEBUG_LOG("currentMode: %d x %d\n", (int)pQuartzScreen->currentMode.width, (int)pQuartzScreen->currentMode.height);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue