aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls/universal
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@gmail.com>2016-02-06 15:13:33 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2016-02-06 15:01:22 +0000
commitc28dfd06c823f0b104d68f4ed4e7b2e2f61f911f (patch)
treeeaf5eba48f14ecfb59b93bd9e74563fe2fd0659b /src/imports/controls/universal
parent6200f32461840613b8c4f98a519e4339a26d63bd (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.cpp3
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;