Fix QFileDialog crash on show with the GTK style.

Call createWinId on modal_widget to make sure
it has a valid QWindow.

Change-Id: Ieaec2bcaceb2ac28032cb42e5f8bcaf7a33828ca
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
bb10
Morten Johan Sorvig 2012-05-31 09:19:49 +02:00 committed by Qt by Nokia
parent 698e5b376d
commit ad33f3639c
1 changed files with 4 additions and 0 deletions

View File

@ -996,6 +996,7 @@ QString QGtkStylePrivate::openFilename(QWidget *parent, const QString &caption,
QWidget modal_widget;
modal_widget.setAttribute(Qt::WA_NoChildEventsForParent, true);
modal_widget.setParent(parent, Qt::Window);
modal_widget.createWinId();
QGuiApplicationPrivate::showModalWindow(modal_widget.windowHandle());
QString filename;
@ -1029,6 +1030,7 @@ QString QGtkStylePrivate::openDirectory(QWidget *parent, const QString &caption,
QWidget modal_widget;
modal_widget.setAttribute(Qt::WA_NoChildEventsForParent, true);
modal_widget.setParent(parent, Qt::Window);
modal_widget.createWinId();
QGuiApplicationPrivate::showModalWindow(modal_widget.windowHandle());
QString filename;
@ -1061,6 +1063,7 @@ QStringList QGtkStylePrivate::openFilenames(QWidget *parent, const QString &capt
QWidget modal_widget;
modal_widget.setAttribute(Qt::WA_NoChildEventsForParent, true);
modal_widget.setParent(parent, Qt::Window);
modal_widget.createWinId();
QGuiApplicationPrivate::showModalWindow(modal_widget.windowHandle());
if (gtk_dialog_run ((GtkDialog*)gtkFileChooser) == GTK_RESPONSE_ACCEPT) {
@ -1094,6 +1097,7 @@ QString QGtkStylePrivate::saveFilename(QWidget *parent, const QString &caption,
QWidget modal_widget;
modal_widget.setAttribute(Qt::WA_NoChildEventsForParent, true);
modal_widget.setParent(parent, Qt::Window);
modal_widget.createWinId();
QGuiApplicationPrivate::showModalWindow(modal_widget.windowHandle());
QString filename;