Sfoglia il codice sorgente

Fix crash in DisplayManager

This was caused by the DisplayManger code assuming no gaps between
displayId's in displays map. This caused issues on windows multimonitor
setups where the displayIds could skip one port on one GPU.

Related to #9
Tobias Hieta 9 anni fa
parent
commit
f7da4ab261
2 ha cambiato i file con 2 aggiunte e 2 eliminazioni
  1. 1 1
      src/display/DisplayManager.cpp
  2. 1 1
      src/display/win/DisplayManagerWin.cpp

+ 1 - 1
src/display/DisplayManager.cpp

@@ -19,7 +19,7 @@ bool DisplayManager::initialize()
   QLOG_INFO() << QString("DisplayManager found %1 Display(s).").arg(displays.size());
 
   // list video modes
-  for (int displayid = 0; displayid < displays.size(); displayid++)
+  foreach(int displayid, displays.keys())
   {
     DMDisplayPtr display = displays[displayid];
     QLOG_INFO() << QString("Available modes for Display #%1 (%2)").arg(displayid).arg(display->name);

+ 1 - 1
src/display/win/DisplayManagerWin.cpp

@@ -150,7 +150,7 @@ DisplayManagerWin::~DisplayManagerWin()
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 int DisplayManagerWin::getDisplayFromPoint(int x, int y)
 {
-  for (int displayId = 0; displayId < displays.size(); displayId++)
+  foreach (int displayId, displays.keys())
   {
     int currentMode = getCurrentDisplayMode(displayId);
     if (currentMode > 0)