aboutsummaryrefslogtreecommitdiffstats
path: root/src/templates/qquickoverlay.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2015-12-18 20:14:14 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2015-12-18 21:25:18 +0000
commit547a5bf8125a6208da60cfbb6fbcfaa359dbd10d (patch)
treebfc79b602656d046655e2fcf680d9b66f20bbb41 /src/templates/qquickoverlay.cpp
parent3ce78788aa95e209438955f09ddfd5d7999dfd38 (diff)
Fix laggy background fading for Drawers
Change-Id: I01bfff39f0018694f0ac4109733a2a441d90da31 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/templates/qquickoverlay.cpp')
-rw-r--r--src/templates/qquickoverlay.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/templates/qquickoverlay.cpp b/src/templates/qquickoverlay.cpp
index 646dfe1a..a3f9b573 100644
--- a/src/templates/qquickoverlay.cpp
+++ b/src/templates/qquickoverlay.cpp
@@ -64,16 +64,27 @@ void QQuickOverlayPrivate::updateBackground()
if (!background)
return;
+ bool anim = true;
qreal level = 0.0;
if (modalPopups > 0) {
level = 1.0;
} else {
- foreach (QQuickDrawer *drawer, drawers)
- level = qMax(level, drawer->position());
+ foreach (QQuickDrawer *drawer, drawers) {
+ qreal pos = drawer->position();
+ if (pos > 0.0 && pos < 1.0)
+ anim = false;
+ level = qMax(level, pos);
+ }
}
- // use QQmlProperty instead of QQuickItem::setOpacity() to trigger QML Behaviors
- QQmlProperty::write(background, QStringLiteral("opacity"), level);
+ if (anim) {
+ // use QQmlProperty instead of QQuickItem::setOpacity() to trigger QML Behaviors
+ QQmlProperty::write(background, QStringLiteral("opacity"), level);
+ } else {
+ // except while a drawer is opening/closing, or else the background
+ // fading feels laggy compared to the drawer movement
+ background->setOpacity(level);
+ }
}
void QQuickOverlayPrivate::resizeBackground()