[Libreoffice-commits] core.git: Branch 'libreoffice-6-4' - cui/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Mon Jun 8 01:10:56 UTC 2020


 cui/source/inc/optlingu.hxx     |    5 ++++-
 cui/source/options/optlingu.cxx |   12 +++++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)

New commits:
commit 35877045bbf7ad37a86e6992d6047154bde61959
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri Jun 5 16:18:50 2020 +0100
Commit:     Adolfo Jayme Barrientos <fitojb at ubuntu.com>
CommitDate: Mon Jun 8 03:10:22 2020 +0200

    crash on double-clicking an entry in Available language modules
    
    tools, options, language settings, writing aids, entry in Available language modules
    
    Change-Id: I0146a313cfae206bc9399c964a746dd00cba0fa2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95564
    Tested-by: Jenkins
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

diff --git a/cui/source/inc/optlingu.hxx b/cui/source/inc/optlingu.hxx
index d4d568708bea..b389733b1651 100644
--- a/cui/source/inc/optlingu.hxx
+++ b/cui/source/inc/optlingu.hxx
@@ -75,8 +75,9 @@ public:
     virtual ~SvxEditModulesDlg() override;
 };
 
-// class SvxLinguTabPage -------------------------------------------------
+struct ImplSVEvent;
 
+// class SvxLinguTabPage -------------------------------------------------
 class SvxLinguTabPage : public SfxTabPage
 {
 private:
@@ -95,6 +96,8 @@ private:
     int nUPN_HYPH_MIN_LEADING;
     int nUPN_HYPH_MIN_TRAILING;
 
+    ImplSVEvent* m_nDlbClickEventId;
+
     css::uno::Reference<
         css::linguistic2::XLinguProperties >     xProp;
 
diff --git a/cui/source/options/optlingu.cxx b/cui/source/options/optlingu.cxx
index 2026c73826a9..419b93b9d1bd 100644
--- a/cui/source/options/optlingu.cxx
+++ b/cui/source/options/optlingu.cxx
@@ -826,6 +826,7 @@ SvxLinguTabPage::SvxLinguTabPage(weld::Container* pPage, weld::DialogController*
     , nUPN_HYPH_MIN_WORD_LENGTH(-1)
     , nUPN_HYPH_MIN_LEADING(-1)
     , nUPN_HYPH_MIN_TRAILING(-1)
+    , m_nDlbClickEventId(nullptr)
     , m_xLinguModulesFT(m_xBuilder->weld_label("lingumodulesft"))
     , m_xLinguModulesCLB(m_xBuilder->weld_tree_view("lingumodules"))
     , m_xLinguModulesEditPB(m_xBuilder->weld_button("lingumodulesedit"))
@@ -893,6 +894,11 @@ SvxLinguTabPage::SvxLinguTabPage(weld::Container* pPage, weld::DialogController*
 
 SvxLinguTabPage::~SvxLinguTabPage()
 {
+    if (m_nDlbClickEventId)
+    {
+        Application::RemoveUserEvent(m_nDlbClickEventId);
+        m_nDlbClickEventId = nullptr;
+    }
     pLinguData.reset();
 }
 
@@ -1272,13 +1278,12 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
 
 IMPL_LINK(SvxLinguTabPage, BoxDoubleClickHdl_Impl, weld::TreeView&, rBox, bool)
 {
-    if (&rBox == m_xLinguModulesCLB.get())
+    if (&rBox == m_xLinguModulesCLB.get() && !m_nDlbClickEventId)
     {
         //! in order to avoid a bug causing a GPF when double clicking
         //! on a module entry and exiting the "Edit Modules" dialog
         //! after that.
-        Application::PostUserEvent( LINK(
-                    this, SvxLinguTabPage, PostDblClickHdl_Impl ), nullptr, true);
+        m_nDlbClickEventId = Application::PostUserEvent(LINK(this, SvxLinguTabPage, PostDblClickHdl_Impl));
     }
     else if (&rBox == m_xLinguOptionsCLB.get())
     {
@@ -1289,6 +1294,7 @@ IMPL_LINK(SvxLinguTabPage, BoxDoubleClickHdl_Impl, weld::TreeView&, rBox, bool)
 
 IMPL_LINK_NOARG(SvxLinguTabPage, PostDblClickHdl_Impl, void*, void)
 {
+    m_nDlbClickEventId = nullptr;
     ClickHdl_Impl(*m_xLinguModulesEditPB);
 }
 


More information about the Libreoffice-commits mailing list