vcl/unx/gtk3/gtk3gtkinst.cxx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
New commits: commit 011dda766ec850d99783c0bd90a5c535c5d113c4 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Thu Dec 19 21:23:48 2019 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Fri Dec 20 09:53:32 2019 +0100 destroy SystemChildWindow at the right stage Change-Id: I4deab0b7ed184684b95548b090bbcbabe9082f61 Reviewed-on: https://gerrit.libreoffice.org/85549 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 0df44590ced6..5d80c7eb8ac3 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -12541,6 +12541,8 @@ private: std::vector<GtkButton*> m_aMnemonicButtons; std::vector<GtkLabel*> m_aMnemonicLabels; + VclPtr<SystemChildWindow> m_xInterimGlue; + void postprocess_widget(GtkWidget* pWidget) { const bool bHideHelp = comphelper::LibreOfficeKit::isActive() && @@ -12722,12 +12724,13 @@ private: pThis->postprocess_widget(GTK_WIDGET(pObject)); } public: - GtkInstanceBuilder(GtkWidget* pParent, const OUString& rUIRoot, const OUString& rUIFile) + GtkInstanceBuilder(GtkWidget* pParent, const OUString& rUIRoot, const OUString& rUIFile, SystemChildWindow* pInterimGlue) : weld::Builder(rUIFile) , m_pStringReplace(Translate::GetReadStringHook()) , m_sHelpRoot(rUIFile) , m_pParentWidget(pParent) , m_nNotifySignalId(0) + , m_xInterimGlue(pInterimGlue) { ensure_intercept_drawing_area_accessibility(); @@ -12811,6 +12814,7 @@ public: { g_slist_free(m_pObjectList); g_object_unref(m_pBuilder); + m_xInterimGlue.disposeAndClear(); } //ideally we would have/use weld::Container add and explicitly @@ -13276,7 +13280,7 @@ weld::Builder* GtkInstance::CreateBuilder(weld::Widget* pParent, const OUString& if (pParent && !pParentWidget) //remove when complete return SalInstance::CreateBuilder(pParent, rUIRoot, rUIFile); GtkWidget* pBuilderParent = pParentWidget ? pParentWidget->getWidget() : nullptr; - return new GtkInstanceBuilder(pBuilderParent, rUIRoot, rUIFile); + return new GtkInstanceBuilder(pBuilderParent, rUIRoot, rUIFile, nullptr); } weld::Builder* GtkInstance::CreateInterimBuilder(vcl::Window* pParent, const OUString& rUIRoot, const OUString& rUIFile) @@ -13297,7 +13301,7 @@ weld::Builder* GtkInstance::CreateInterimBuilder(vcl::Window* pParent, const OUS gtk_widget_show_all(pWindow); // build the widget tree as a child of the GtkEventBox GtkGrid parent - return new GtkInstanceBuilder(pWindow, rUIRoot, rUIFile); + return new GtkInstanceBuilder(pWindow, rUIRoot, rUIFile, xEmbedWindow.get()); } weld::MessageDialog* GtkInstance::CreateMessageDialog(weld::Widget* pParent, VclMessageType eMessageType, VclButtonsType eButtonsType, const OUString &rPrimaryMessage) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits