summaryrefslogtreecommitdiffstats
path: root/src/xx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/xx.cpp')
-rw-r--r--src/xx.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/xx.cpp b/src/xx.cpp
index d0b6a3d..80cb1b1 100644
--- a/src/xx.cpp
+++ b/src/xx.cpp
@@ -225,6 +225,11 @@ static double toVertRefresh(const XRRModeInfo *mode)
return 0;
}
+void ScreenSetup::addMissingEdidResolutions()
+{
+ a->addMissingEdidResolutions();
+}
+
//___________________________________________________________________________
void ScreenSetup::updateScreenResources()
{
@@ -254,10 +259,11 @@ void ScreenSetup::initModes()
for (XRRModeInfo *mode : a->_modeMap) {
if (toVertRefresh(mode) < 58 || toVertRefresh(mode) > 61)
continue; // Play it safe and consider only those for copying that are 60Hz
- wanted.remove(RES(mode->width, mode->height));
+ if (!wanted.remove(RES(mode->width, mode->height)))
+ continue; // Is not a wanted resolution
// Make sure all outputs got it
for (OutputInfo *info : a->_outputMap) {
- if (a->getOutputModeForResolution(info->output, mode->width, mode->height))
+ if (a->getOutputModeForResolution(info->output, mode->width, mode->height) != None)
continue;
XRRAddOutputMode(a->_display, info->id, mode->id);
}
@@ -269,7 +275,7 @@ void ScreenSetup::initModes()
unsigned int y = res >> 16;
createMode(x, y, 60, QString::asprintf("%ux%u", x, y));
}
- if (!wanted.isEmpty()) {
+ if (!wanted.isEmpty()) { // Modes were added, update for final loop below
updateScreenResources();
}
// Finally copy all those the projector supports to other outputs