diff options
Diffstat (limited to 'src/xx.cpp')
-rw-r--r-- | src/xx.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
@@ -137,7 +137,7 @@ static QWeakPointer<BackupInternalInternal> currentBackup; */ -static ScreenInfo initScreenInfo(const OutputInfo *oi, const ModeMap &om) +ScreenInfo ScreenSetup::initScreenInfo(const OutputInfo *oi) const { ScreenInfo si; si.position = oi->position; @@ -148,17 +148,18 @@ static ScreenInfo initScreenInfo(const OutputInfo *oi, const ModeMap &om) si.currentResolution = QSize(QSize(int(oi->mode->width), int(oi->mode->height))); } for (int i = 0; i < oi->output->nmode; ++i) { - if (om.contains(oi->output->modes[i])) { - auto m = om.value(oi->output->modes[i]); + if (a->_outputMap.contains(oi->output->modes[i])) { + auto m = a->_outputMap.value(oi->output->modes[i])->mode; const QSize size(int(m->width), int(m->height)); if (!si.modes.contains(size)) { si.modes.append(size); } - if (i == 0 && oi->output->npreferred > 0) { - si.preferredResolution = size; - } } } + auto pref = a->getPreferredMode(oi); + if (pref != nullptr) { + si.preferredResolution = QSize(int(pref->width), int(pref->height)); + } return si; } @@ -240,7 +241,7 @@ QMap<QString, ScreenInfo> ScreenSetup::getScreenPositions() const { QMap<QString, ScreenInfo> ret; for (auto oi : a->_outputMap) { - ret.insert(oi->outputName, initScreenInfo(oi, a->_modeMap)); + ret.insert(oi->outputName, initScreenInfo(oi)); } return ret; } |