From ad33f3639c0d4611a4586dc5a08ed768c7d3a6d5 Mon Sep 17 00:00:00 2001 From: Morten Johan Sorvig Date: Thu, 31 May 2012 09:19:49 +0200 Subject: [PATCH] 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 --- src/widgets/styles/qgtkstyle_p.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/widgets/styles/qgtkstyle_p.cpp b/src/widgets/styles/qgtkstyle_p.cpp index 37edf5d786..9ed56dd6d2 100644 --- a/src/widgets/styles/qgtkstyle_p.cpp +++ b/src/widgets/styles/qgtkstyle_p.cpp @@ -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;