Fix isTopLevel() in QWindow.
authorLaszlo Agocs <laszlo.p.agocs@nokia.com>
Tue, 31 May 2011 08:04:04 +0000 (10:04 +0200)
committerLaszlo Agocs <laszlo.p.agocs@nokia.com>
Tue, 31 May 2011 08:45:24 +0000 (10:45 +0200)
This also makes modal hints set properly for dialogs so the
additional checks during active window change are not needed
anymore.

Reviewed-by: Samuel Rødal
src/gui/kernel/qwindow.cpp
src/widgets/kernel/qapplication_qpa.cpp

index e53a205..1b65c4e 100644 (file)
@@ -154,7 +154,7 @@ void QWindow::setParent(QWindow *parent)
 bool QWindow::isTopLevel() const
 {
     Q_D(const QWindow);
-    return d->parentWindow != 0;
+    return d->parentWindow == 0;
 }
 
 bool QWindow::isModal() const
index 0210c14..ec67452 100644 (file)
@@ -157,14 +157,7 @@ void QApplicationPrivate::notifyActiveWindowChange(QWindow *previous)
     Q_Q(QApplication);
     QWindow *wnd = QGuiApplicationPrivate::active_window;
     QWidget *tlw = qt_tlw_for_window(wnd);
-    if (!tlw)
-        return;
-    if (modalState()
-        && !qt_try_modal(tlw, QEvent::MouseButtonRelease)
-        && q->activeWindow())
-        q->activeWindow()->activateWindow();
-    else
-        q->setActiveWindow(tlw);
+    q->setActiveWindow(tlw);
 }
 
 void QApplicationPrivate::closePopup(QWidget *popup)