Browse Source

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 years ago
parent
commit
f7da4ab261
2 changed files with 2 additions and 2 deletions
  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)