diff options
author | J-P Nurmi <jpnurmi@gmail.com> | 2016-02-06 15:13:33 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-02-06 15:01:22 +0000 |
commit | c28dfd06c823f0b104d68f4ed4e7b2e2f61f911f (patch) | |
tree | eaf5eba48f14ecfb59b93bd9e74563fe2fd0659b /src/imports/controls/universal | |
parent | 6200f32461840613b8c4f98a519e4339a26d63bd (diff) |
QQuickUniversalFocusRectangle: avoid unnecessary paints
Drawing a double-dashed focus rectangle gets seemingly expensive if
the active focus control is eg. a SwipeView that covers the whole
screen. In fact, SwipeView does not even request a focus rectangle
(useSystemFocusVisuals: false), so it makes no sense to waste CPU
cycles drawing a huge double-dashed rectangle. It's a bit unclear
why QQuickPaintedItem even calls paint() when it's hidden...
Change-Id: I57a8dd309674b8a6e99749544242a00dc02471ee
Task-number: QTBUG-50575
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/imports/controls/universal')
-rw-r--r-- | src/imports/controls/universal/qquickuniversalfocusrectangle.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/imports/controls/universal/qquickuniversalfocusrectangle.cpp b/src/imports/controls/universal/qquickuniversalfocusrectangle.cpp index a894390e..40388eff 100644 --- a/src/imports/controls/universal/qquickuniversalfocusrectangle.cpp +++ b/src/imports/controls/universal/qquickuniversalfocusrectangle.cpp @@ -49,6 +49,9 @@ QQuickUniversalFocusRectangle::QQuickUniversalFocusRectangle(QQuickItem *parent) void QQuickUniversalFocusRectangle::paint(QPainter *painter) { + if (!isVisible() || width() <= 0 || height() <= 0) + return; + const QRect bounds = boundingRect().toAlignedRect().adjusted(0, 0, -1, -1); QPen pen; |