summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2012-02-06 09:38:48 +0100
committerQt by Nokia <qt-info@nokia.com>2012-02-06 10:15:09 +0100
commit3282b060d19f73ade5b7370983dbea75c130166b (patch)
tree6b19d5c8a02b0e7cdbd8ba9b259174e1f7f1b348 /src
parent1d18fd01645e3b9efcd1a2c5dd030a5fc0f5892a (diff)
Windows XP style: Fix warnings wrt retrieving HANDLE from 0-window.
Exclude invisible top level dialogs for whom a native dialog is being shown from top-level search. Change-Id: Ia94599905457d81d342c14d09ad0b0fc89ec4ab1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/widgets/styles/qwindowsxpstyle.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/widgets/styles/qwindowsxpstyle.cpp b/src/widgets/styles/qwindowsxpstyle.cpp
index 63d275a391..a24f42c5f1 100644
--- a/src/widgets/styles/qwindowsxpstyle.cpp
+++ b/src/widgets/styles/qwindowsxpstyle.cpp
@@ -337,10 +337,11 @@ HWND QWindowsXPStylePrivate::winId(const QWidget *widget)
if (const HWND hwnd = QApplicationPrivate::getHWNDForWidget(const_cast<QWidget *>(widget)))
return hwnd;
- const QWidgetList toplevels = QApplication::topLevelWidgets();
- if (!toplevels.isEmpty())
- if (const HWND topLevelHwnd = QApplicationPrivate::getHWNDForWidget(toplevels.front()))
- return topLevelHwnd;
+ // Find top level with native window (there might be dialogs that do not have one).
+ foreach (const QWidget *toplevel, QApplication::topLevelWidgets())
+ if (toplevel->windowHandle())
+ if (const HWND topLevelHwnd = QApplicationPrivate::getHWNDForWidget(toplevel))
+ return topLevelHwnd;
if (QDesktopWidget *desktop = qApp->desktop())
if (const HWND desktopHwnd = QApplicationPrivate::getHWNDForWidget(desktop))