From 8d507420c0e91ed704b692187f9962d7fcf0e15f Mon Sep 17 00:00:00 2001 From: rncbc Date: Tue, 11 Dec 2018 09:53:47 +0000 Subject: Fix qt5_in_gtk2 wrapper Removes the built-in QApplication instantiation and postpones the deletion of the embedded QWidget. This makes UIs work more nicely in hosts like Ardour. --- src/qt5_in_gtk2.cpp | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/qt5_in_gtk2.cpp b/src/qt5_in_gtk2.cpp index f0e324a..4c77c4d 100644 --- a/src/qt5_in_gtk2.cpp +++ b/src/qt5_in_gtk2.cpp @@ -17,7 +17,6 @@ #include -#include #include #include #include @@ -37,7 +36,6 @@ typedef struct _SuilQtWrapperClass SuilQtWrapperClass; struct _SuilQtWrapper { GtkSocket socket; - QApplication* app; QWidget* qembed; SuilWrapper* wrapper; SuilInstance* instance; @@ -69,10 +67,11 @@ suil_qt_wrapper_finalize(GObject* gobject) self->instance->handle = NULL; } - delete self->qembed; + if (self->qembed) { + self->qembed->deleteLater(); + } self->qembed = NULL; - self->app = NULL; self->idle_iface = NULL; self->wrapper->impl = NULL; @@ -90,7 +89,6 @@ suil_qt_wrapper_class_init(SuilQtWrapperClass* klass) static void suil_qt_wrapper_init(SuilQtWrapper* self) { - self->app = NULL; self->qembed = NULL; self->wrapper = NULL; self->instance = NULL; @@ -194,12 +192,6 @@ suil_wrapper_new(SuilHost* host, SuilQtWrapper* const wrap = SUIL_QT_WRAPPER( g_object_new(SUIL_TYPE_QT_WRAPPER, NULL)); - if (qApp) { - wrap->app = qApp; - } else { - wrap->app = new QApplication(host->argc, host->argv, true); - } - wrap->wrapper = NULL; wrapper->impl = wrap; -- cgit v1.2.1