vcl/unx/gtk3/gtk3gtkinst.cxx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
New commits: commit 62d1b2d88baac7c2968d909b84b1125132d7aa85 Author: Caolán McNamara <[email protected]> AuthorDate: Thu Dec 19 21:23:48 2019 +0000 Commit: Szymon Kłos <[email protected]> CommitDate: Mon Jun 8 09:18:40 2020 +0200 destroy SystemChildWindow at the right stage Change-Id: I4deab0b7ed184684b95548b090bbcbabe9082f61 Reviewed-on: https://gerrit.libreoffice.org/85549 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index ec47dd20ca6b..1fac0eede611 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -12526,6 +12526,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() && @@ -12707,12 +12709,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(); ensure_disable_ctrl_page_up_down_bindings(); @@ -12797,6 +12800,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 @@ -13260,7 +13264,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) @@ -13281,7 +13285,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 [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
