浏览代码

Fix CGDisplayMode comparison on OS X

Compare the DisplayMode's IOKit ID, rather than the reference.

Plex-CLA-1.0-signed-off-by: FrostedMint <vulpix@frostedmint.cc>
FrostedMint 8 年之前
父节点
当前提交
6254530ae1
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      src/display/osx/DisplayManagerOSX.cpp

+ 5 - 1
src/display/osx/DisplayManagerOSX.cpp

@@ -120,10 +120,14 @@ int DisplayManagerOSX::getCurrentDisplayMode(int display)
     return -1;
   
   CGDisplayModeRef currentMode = CGDisplayCopyDisplayMode(m_osxDisplays[display]);
+  uint32_t currentIOKitID = CGDisplayModeGetIODisplayModeID(currentMode);
 
   for (int mode = 0; mode < CFArrayGetCount(m_osxDisplayModes[display]); mode++)
   {
-    if (currentMode == (CGDisplayModeRef)CFArrayGetValueAtIndex(m_osxDisplayModes[display], mode))
+    CGDisplayModeRef checkMode = (CGDisplayModeRef)CFArrayGetValueAtIndex(m_osxDisplayModes[display], mode);
+    uint32_t checkIOKitID = CGDisplayModeGetIODisplayModeID(checkMode);
+
+    if (currentIOKitID == checkIOKitID)
     {
       CFRelease(currentMode);
       return mode;