From 3282b060d19f73ade5b7370983dbea75c130166b Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 6 Feb 2012 09:38:48 +0100 Subject: 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 --- src/widgets/styles/qwindowsxpstyle.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/widgets/styles') 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(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)) -- cgit v1.2.3