Safeguard QScreen::refreshRate against buggy platform behavior

Change-Id: I891bd5272db76e8562f6722b633cc0fdaac5f7a2
Task-number: QTBUG-43853
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
bb10
Gunnar Sletta 2015-01-16 10:43:21 +01:00 committed by Gunnar Sletta
parent bdbcf6704f
commit 6338b1421e
2 changed files with 11 additions and 3 deletions

View File

@ -2578,9 +2578,14 @@ void QGuiApplicationPrivate::reportRefreshRateChange(QWindowSystemInterfacePriva
return;
QScreen *s = e->screen.data();
s->d_func()->refreshRate = e->rate;
emit s->refreshRateChanged(s->refreshRate());
qreal rate = e->rate;
// safeguard ourselves against buggy platform behavior...
if (rate < 1.0)
rate = 60.0;
if (!qFuzzyCompare(s->d_func()->refreshRate, rate)) {
s->d_func()->refreshRate = rate;
emit s->refreshRateChanged(s->refreshRate());
}
}
void QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent *e)

View File

@ -64,6 +64,9 @@ public:
availableGeometry = platformScreen->availableGeometry();
logicalDpi = platformScreen->logicalDpi();
refreshRate = platformScreen->refreshRate();
// safeguard ourselves against buggy platform behavior...
if (refreshRate < 1.0)
refreshRate = 60.0;
updatePrimaryOrientation();