summaryrefslogtreecommitdiffstats
path: root/src/xx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/xx.cpp')
-rw-r--r--src/xx.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/xx.cpp b/src/xx.cpp
index 80cb1b1..4b8f3ee 100644
--- a/src/xx.cpp
+++ b/src/xx.cpp
@@ -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;
}