Преглед изворни кода

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;