diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2012-02-06 09:38:48 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-06 10:15:09 +0100 |
commit | 3282b060d19f73ade5b7370983dbea75c130166b (patch) | |
tree | 6b19d5c8a02b0e7cdbd8ba9b259174e1f7f1b348 /src | |
parent | 1d18fd01645e3b9efcd1a2c5dd030a5fc0f5892a (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.cpp | 9 |
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)) |