summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qguiapplication.cpp
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@jollamobile.com>2015-01-16 10:43:21 +0100
committerGunnar Sletta <gunnar@sletta.org>2015-01-21 18:38:23 +0100
commit6338b1421ef5a9928df25dde5ef62c6b11682da6 (patch)
tree617c267292bee0bb03888f255cb43778265619ca /src/gui/kernel/qguiapplication.cpp
parentbdbcf6704f4b0e7d9aaa522cc69e730148080cb8 (diff)
Safeguard QScreen::refreshRate against buggy platform behavior
Change-Id: I891bd5272db76e8562f6722b633cc0fdaac5f7a2 Task-number: QTBUG-43853 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Diffstat (limited to 'src/gui/kernel/qguiapplication.cpp')
-rw-r--r--src/gui/kernel/qguiapplication.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index dc5501eaf5..928d0cddc9 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -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)