Fix isTopLevel() in QWindow.

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
bb10
Laszlo Agocs 2011-05-31 10:04:04 +02:00
parent be24744c75
commit 589a562c01
2 changed files with 2 additions and 9 deletions

View 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

View 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)