summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
authorSérgio Martins <sergio.martins@kdab.com>2016-01-22 20:40:00 +0000
committerSérgio Martins <iamsergio@gmail.com>2016-02-07 16:49:33 +0000
commitaf499fd7eb4026088ea1ed83a976866ab930dd79 (patch)
treed55b05dbe2e8bee27d502c6c53d15660f1b24e6b /src/gui/kernel
parent8eaf3352590690079735eda9fb872ec8c9c58f0a (diff)
Make QWindowGeometrySpecification suitable to use as global
It's used as a global static but according to library policy it's required to have a trivial dtor and a trivial or constexpr ctor, otherwise it runs code at library load/unload. Change-Id: I1fcea3ce388b2a198e3851e6d0aeb91ae0a8e4b1 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'src/gui/kernel')
-rw-r--r--src/gui/kernel/qguiapplication.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index 65d679cdad..3fe6698955 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -235,11 +235,13 @@ static inline void clearFontUnlocked()
QGuiApplicationPrivate::app_font = 0;
}
+// Using aggregate initialization instead of ctor so we can have a POD global static
+#define Q_WINDOW_GEOMETRY_SPECIFICATION_INITIALIZER { Qt::TopLeftCorner, -1, -1, -1, -1 }
+
// Geometry specification for top level windows following the convention of the
// -geometry command line arguments in X11 (see XParseGeometry).
struct QWindowGeometrySpecification
{
- QWindowGeometrySpecification() : corner(Qt::TopLeftCorner), xOffset(-1), yOffset(-1), width(-1), height(-1) {}
static QWindowGeometrySpecification fromArgument(const QByteArray &a);
void applyTo(QWindow *window) const;
@@ -276,7 +278,7 @@ static inline int nextGeometryToken(const QByteArray &a, int &pos, char *op)
QWindowGeometrySpecification QWindowGeometrySpecification::fromArgument(const QByteArray &a)
{
- QWindowGeometrySpecification result;
+ QWindowGeometrySpecification result = Q_WINDOW_GEOMETRY_SPECIFICATION_INITIALIZER;
int pos = 0;
for (int i = 0; i < 4; ++i) {
char op;
@@ -333,7 +335,7 @@ void QWindowGeometrySpecification::applyTo(QWindow *window) const
}
}
-static QWindowGeometrySpecification windowGeometrySpecification;
+static QWindowGeometrySpecification windowGeometrySpecification = Q_WINDOW_GEOMETRY_SPECIFICATION_INITIALIZER;
/*!
\class QGuiApplication