aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Arve Sæther <jan-arve.saether@qt.io>2020-10-26 13:50:08 +0100
committerJan Arve Sæther <jan-arve.saether@qt.io>2020-10-26 14:07:55 +0100
commit04913fefc9f628407fbc432fc903bbb1559de42e (patch)
tree06ee83b6acaa35e90e5de67cbc0c4ce5b791b10e
parent9a15b53e1ddf07807ca03cce7cd4321f4f11911d (diff)
Native style: Fix bug in layoutMargins()
It should return margin of 0 if style()->subElementRect(XXXLayoutItem) returned an invalid rect. This means that we cannot rely on m_styleItemGeometry.layoutRect blindly. Change-Id: If6b5a40481c8199a63f3446abc9e7dd1c670d181 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
-rw-r--r--src/imports/nativestyle/items/qquickstyleitem.cpp8
-rw-r--r--src/imports/nativestyle/items/qquickstyleitem.h2
2 files changed, 7 insertions, 3 deletions
diff --git a/src/imports/nativestyle/items/qquickstyleitem.cpp b/src/imports/nativestyle/items/qquickstyleitem.cpp
index 5899e3ce..e59439ab 100644
--- a/src/imports/nativestyle/items/qquickstyleitem.cpp
+++ b/src/imports/nativestyle/items/qquickstyleitem.cpp
@@ -433,8 +433,12 @@ QQuickStyleMargins QQuickStyleItem::layoutMargins() const
// than the control(frame) itself, to e.g make room for shadow effects
// or focus rects/glow. And this will differ from control to control. The
// layoutRect will then inform where the frame of the control is.
- const QRect outerRect(QPoint(0, 0), m_styleItemGeometry.implicitSize);
- return QQuickStyleMargins(outerRect, m_styleItemGeometry.layoutRect);
+ QQuickStyleMargins margins;
+ if (m_styleItemGeometry.layoutRect.isValid()) {
+ const QRect outerRect(QPoint(0, 0), m_styleItemGeometry.implicitSize);
+ margins = QQuickStyleMargins(outerRect, m_styleItemGeometry.layoutRect);
+ }
+ return margins;
}
QSize QQuickStyleItem::minimumSize() const
diff --git a/src/imports/nativestyle/items/qquickstyleitem.h b/src/imports/nativestyle/items/qquickstyleitem.h
index 2c8c9920..4e4180c1 100644
--- a/src/imports/nativestyle/items/qquickstyleitem.h
+++ b/src/imports/nativestyle/items/qquickstyleitem.h
@@ -144,7 +144,7 @@ struct StyleItemGeometry
QSize minimumSize;
QSize implicitSize;
QRect contentRect;
- QRect layoutRect;
+ QRect layoutRect; //If invalid, there are no layout margins!
QMargins ninePatchMargins;
qreal focusFrameRadius;
};