diff options
author | Alexander Volkov <a.volkov@rusbitech.ru> | 2015-02-10 17:43:03 +0300 |
---|---|---|
committer | Timur Pocheptsov <Timur.Pocheptsov@digia.com> | 2015-06-06 17:48:46 +0000 |
commit | 6468cf4e79cca74fa3704c1a1c03fc5da3778416 (patch) | |
tree | e24d0d49da34e39d0009572a59a526338f52615e | |
parent | 2d8c7087fb9ab747e9cae4a246685a6563db1d78 (diff) |
Fix centering dialogs
QDialog::setVisible() tries to adjusts the dialog position, but
it's not really possible if the dialog size is not defined yet.
Besides, if the dialog window is not created, QWidget::move()
will not really move it and will set WA_PendingMoveEvent flag.
And QWidget::setVisible() also will not change the position,
because we reset WA_Moved flag. Thus it may break adjusting
the position in QDialog::showEvent().
So adjust the position only in QDialog::showEvent().
Task-number: QTBUG-36185
Task-number: QTBUG-39259
Task-number: QTBUG-41844
Change-Id: I015a19f2e533f68178f4ee7519b17f5e9b5def7b
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
-rw-r--r-- | src/widgets/dialogs/qdialog.cpp | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/src/widgets/dialogs/qdialog.cpp b/src/widgets/dialogs/qdialog.cpp index 6676a3ccba..68a419afc9 100644 --- a/src/widgets/dialogs/qdialog.cpp +++ b/src/widgets/dialogs/qdialog.cpp @@ -720,13 +720,6 @@ void QDialog::setVisible(bool visible) if (testAttribute(Qt::WA_WState_ExplicitShowHide) && !testAttribute(Qt::WA_WState_Hidden)) return; - if (!testAttribute(Qt::WA_Moved)) { - Qt::WindowStates state = windowState(); - adjustPosition(parentWidget()); - setAttribute(Qt::WA_Moved, false); // not really an explicit position - if (state != windowState()) - setWindowState(state); - } QWidget::setVisible(visible); showExtension(d->doShowExtension); QWidget *fw = window()->focusWidget(); |