summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDavid Fries <david@fries.net>2012-09-26 04:39:13 (GMT)
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-09-28 05:36:13 (GMT)
commit14dabf0f354b4f3817393d9b9e52473f88b896da (patch)
tree4e37efc9c6642e51baff893b662259862167656b /src
parenta5beb5af606110df111be6e8321ebdd1c548db7f (diff)
downloadQt-14dabf0f354b4f3817393d9b9e52473f88b896da.zip
Qt-14dabf0f354b4f3817393d9b9e52473f88b896da.tar.gz
Qt-14dabf0f354b4f3817393d9b9e52473f88b896da.tar.bz2
clear XSizeHints before use
Always clear the XSizeHints before retrieving with XGetWMNormalHints because if the window doesn't have size hints set the structure will remain uninitalized. Clear XSizeHints in other locations as well just to be safe. Task-number: QTBUG-15418 Change-Id: Ia9a0c485389bf27016ee7f206a3a916d0bbcbcfa Signed-off-by: David Fries <David@Fries.net> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui/kernel/qapplication_x11.cpp1
-rw-r--r--src/gui/kernel/qwidget_x11.cpp3
2 files changed, 3 insertions, 1 deletions
diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp
index 22f7e19..c287d81 100644
--- a/src/gui/kernel/qapplication_x11.cpp
+++ b/src/gui/kernel/qapplication_x11.cpp
@@ -602,6 +602,7 @@ public:
// static gravity!
XSizeHints sh;
+ memset(&sh, 0, sizeof(sh));
long unused;
XGetWMNormalHints(X11->display, internalWinId(), &sh, &unused);
sh.flags |= USPosition | PPosition | USSize | PSize | PWinGravity;
diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp
index aec4ade..fa910aa 100644
--- a/src/gui/kernel/qwidget_x11.cpp
+++ b/src/gui/kernel/qwidget_x11.cpp
@@ -780,6 +780,7 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
// note: WM_TRANSIENT_FOR is set in QWidgetPrivate::show_sys()
XSizeHints size_hints;
+ memset(&size_hints, 0, sizeof(size_hints));
size_hints.flags = USSize | PSize | PWinGravity;
size_hints.x = data.crect.left();
size_hints.y = data.crect.top();
@@ -2298,7 +2299,7 @@ static void do_size_hints(QWidget* widget, QWExtra *x)
{
Q_ASSERT(widget->testAttribute(Qt::WA_WState_Created));
XSizeHints s;
- s.flags = 0;
+ memset(&s, 0, sizeof(s));
if (x) {
QRect g = widget->geometry();
s.x = g.x();