浏览代码

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 年之前
父节点
当前提交
f7da4ab261
共有 2 个文件被更改,包括 2 次插入2 次删除
  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)