Related: tdf#127935 set default activate handler to toggle row expansion

Change-Id: I2bbfb1445b8d2e748f642cdf4723d41b7f072e2b
Reviewed-on: https://gerrit.libreoffice.org/80305
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/basctl/source/basicide/bastype2.cxx b/basctl/source/basicide/bastype2.cxx
index 75be663..4807996 100644
--- a/basctl/source/basicide/bastype2.cxx
+++ b/basctl/source/basicide/bastype2.cxx
@@ -1498,11 +1498,11 @@ void SbTreeListBox::SetCurrentEntry (EntryDescriptor const & rDesc)
    m_xControl->set_cursor(*xCurIter);
}

IMPL_LINK_NOARG(SbTreeListBox, OpenCurrentHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(SbTreeListBox, OpenCurrentHdl, weld::TreeView&, bool)
{
    bool bValidIter = m_xControl->get_cursor(m_xIter.get());
    if (!bValidIter)
        return;
        return true;
    EntryDescriptor aDesc = GetEntryDescriptor(m_xIter.get());
    switch (aDesc.GetType())
    {
@@ -1520,7 +1520,7 @@ IMPL_LINK_NOARG(SbTreeListBox, OpenCurrentHdl, weld::TreeView&, void)
                    SID_BASICIDE_SHOWSBX, SfxCallMode::SYNCHRON,
                    { &aSbxItem }
                );
                return;
                return true;
            }
            break;

@@ -1531,6 +1531,7 @@ IMPL_LINK_NOARG(SbTreeListBox, OpenCurrentHdl, weld::TreeView&, void)
                m_xControl->collapse_row(*m_xIter);
            break;
    }
    return true;
}

} // namespace basctl
diff --git a/basctl/source/basicide/brkdlg.cxx b/basctl/source/basicide/brkdlg.cxx
index e7132e7..6839ff0 100644
--- a/basctl/source/basicide/brkdlg.cxx
+++ b/basctl/source/basicide/brkdlg.cxx
@@ -167,11 +167,11 @@ IMPL_LINK(BreakPointDialog, FieldModifyHdl, weld::SpinButton&, rEdit, void)
        pBrk->nStopAfter = rEdit.get_value();
}

IMPL_LINK_NOARG(BreakPointDialog, TreeModifyHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(BreakPointDialog, TreeModifyHdl, weld::TreeView&, bool)
{
    if (!m_xDelButton->get_sensitive())
        return;
    ButtonHdl(*m_xDelButton);
    if (m_xDelButton->get_sensitive())
        ButtonHdl(*m_xDelButton);
    return true;
}

IMPL_LINK(BreakPointDialog, ButtonHdl, weld::Button&, rButton, void)
diff --git a/basctl/source/basicide/brkdlg.hxx b/basctl/source/basicide/brkdlg.hxx
index 48b91cf..43e6153 100644
--- a/basctl/source/basicide/brkdlg.hxx
+++ b/basctl/source/basicide/brkdlg.hxx
@@ -42,7 +42,7 @@ class BreakPointDialog final : public weld::GenericDialogController
    DECL_LINK(EditModifyHdl, weld::ComboBox&, void);
    DECL_LINK(FieldModifyHdl, weld::SpinButton&, void);
    DECL_LINK(ButtonHdl, weld::Button&, void);
    DECL_LINK(TreeModifyHdl, weld::TreeView&, void);
    DECL_LINK(TreeModifyHdl, weld::TreeView&, bool);
    void            UpdateFields( BreakPoint const & rBrk );
    BreakPoint*     GetSelectedBreakPoint();

diff --git a/basctl/source/basicide/macrodlg.cxx b/basctl/source/basicide/macrodlg.cxx
index ff54224..9d1add2 100644
--- a/basctl/source/basicide/macrodlg.cxx
+++ b/basctl/source/basicide/macrodlg.cxx
@@ -431,7 +431,7 @@ void MacroChooser::CheckButtons()
    }
}

IMPL_LINK_NOARG(MacroChooser, MacroDoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(MacroChooser, MacroDoubleClickHdl, weld::TreeView&, bool)
{
    SbMethod* pMethod = GetMacro();
    SbModule* pModule = pMethod ? pMethod->GetModule() : nullptr;
@@ -444,17 +444,18 @@ IMPL_LINK_NOARG(MacroChooser, MacroDoubleClickHdl, weld::TreeView&, void)
            Application::CreateMessageDialog(m_xDialog.get(), VclMessageType::Warning,
                                             VclButtonsType::Ok, IDEResId(RID_STR_CANNOTRUNMACRO)));
        xError->run();
        return;
        return true;
    }

    StoreMacroDescription();
    if (nMode == Recording)
    {
        if (pMethod && !QueryReplaceMacro(pMethod->GetName(), m_xDialog.get()))
            return;
            return true;
    }

    m_xDialog->response(Macro_OkRun);
    return true;
}

IMPL_LINK_NOARG(MacroChooser, MacroSelectHdl, weld::TreeView&, void)
diff --git a/basctl/source/basicide/macrodlg.hxx b/basctl/source/basicide/macrodlg.hxx
index 9ab71ac..e6ce85e 100644
--- a/basctl/source/basicide/macrodlg.hxx
+++ b/basctl/source/basicide/macrodlg.hxx
@@ -55,7 +55,7 @@ private:
    Mode                    nMode;

    DECL_LINK(MacroSelectHdl, weld::TreeView&, void);
    DECL_LINK(MacroDoubleClickHdl, weld::TreeView&, void);
    DECL_LINK(MacroDoubleClickHdl, weld::TreeView&, bool);
    DECL_LINK(BasicSelectHdl, weld::TreeView&, void);
    DECL_LINK(EditModifyHdl, weld::Entry&, void);
    DECL_LINK(ButtonHdl, weld::Button&, void);
diff --git a/basctl/source/inc/bastype2.hxx b/basctl/source/inc/bastype2.hxx
index 7f14f3f..88c303e 100644
--- a/basctl/source/inc/bastype2.hxx
+++ b/basctl/source/inc/bastype2.hxx
@@ -253,7 +253,7 @@ private:

protected:
    DECL_LINK(RequestingChildrenHdl, const weld::TreeIter&, bool);
    DECL_LINK(OpenCurrentHdl, weld::TreeView&, void);
    DECL_LINK(OpenCurrentHdl, weld::TreeView&, bool);
    void                    ImpCreateLibEntries(const weld::TreeIter& rShellRootEntry, const ScriptDocument& rDocument, LibraryLocation eLocation);
    void                    ImpCreateLibSubEntries(const weld::TreeIter& rLibRootEntry, const ScriptDocument& rDocument, const OUString& rLibName);
    void                    ImpCreateLibSubEntriesInVBAMode(const weld::TreeIter& rLibRootEntry, const ScriptDocument& rDocument, const OUString& rLibName );
diff --git a/cui/source/customize/cfg.cxx b/cui/source/customize/cfg.cxx
index 79977a2..b9f08fe 100644
--- a/cui/source/customize/cfg.cxx
+++ b/cui/source/customize/cfg.cxx
@@ -1553,10 +1553,11 @@ IMPL_LINK(SvxConfigPage, MoveHdl, weld::Button&, rButton, void)
    MoveEntry(&rButton == m_xMoveUpButton.get());
}

IMPL_LINK_NOARG(SvxConfigPage, FunctionDoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(SvxConfigPage, FunctionDoubleClickHdl, weld::TreeView&, bool)
{
    if (m_xAddCommandButton->get_sensitive())
        m_xAddCommandButton->clicked();
    return true;
}

IMPL_LINK_NOARG(SvxConfigPage, SelectFunctionHdl, weld::TreeView&, void)
diff --git a/cui/source/customize/cfgutil.cxx b/cui/source/customize/cfgutil.cxx
index ebfc025..0549e04 100644
--- a/cui/source/customize/cfgutil.cxx
+++ b/cui/source/customize/cfgutil.cxx
@@ -408,23 +408,10 @@ CuiConfigGroupListBox::CuiConfigGroupListBox(std::unique_ptr<weld::TreeView> xTr
    , m_pStylesInfo(nullptr)
    , m_xTreeView(std::move(xTreeView))
{
    m_xTreeView->connect_row_activated(LINK(this, CuiConfigGroupListBox, OpenCurrentHdl));
    m_xTreeView->connect_expanding(LINK(this, CuiConfigGroupListBox, ExpandingHdl));
    m_xTreeView->set_size_request(m_xTreeView->get_approximate_digit_width() * 35, m_xTreeView->get_height_rows(9));
}

IMPL_LINK_NOARG(CuiConfigGroupListBox, OpenCurrentHdl, weld::TreeView&, void)
{
    std::unique_ptr<weld::TreeIter> xIter(m_xTreeView->make_iterator());
    bool bValidIter = m_xTreeView->get_cursor(xIter.get());
    if (!bValidIter)
        return;
    if (!m_xTreeView->get_row_expanded(*xIter))
        m_xTreeView->expand_row(*xIter);
    else
        m_xTreeView->collapse_row(*xIter);
}

CuiConfigGroupListBox::~CuiConfigGroupListBox()
{
    ClearAll();
@@ -1133,10 +1120,11 @@ IMPL_LINK(SvxScriptSelectorDialog, SelectHdl, weld::TreeView&, rCtrl, void)
    UpdateUI();
}

IMPL_LINK_NOARG(SvxScriptSelectorDialog, FunctionDoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(SvxScriptSelectorDialog, FunctionDoubleClickHdl, weld::TreeView&, bool)
{
    if (m_xOKButton->get_sensitive())
        ClickHdl(*m_xOKButton);
    return true;
}

// Check if command is selected and enable the OK button accordingly
diff --git a/cui/source/customize/macropg.cxx b/cui/source/customize/macropg.cxx
index b2b3bea..2fb442d 100644
--- a/cui/source/customize/macropg.cxx
+++ b/cui/source/customize/macropg.cxx
@@ -385,9 +385,10 @@ IMPL_LINK( SvxMacroTabPage_, AssignDeleteHdl_Impl, weld::Button&, rBtn, void )
    GenericHandler_Impl(this, &rBtn);
}

IMPL_LINK_NOARG( SvxMacroTabPage_, DoubleClickHdl_Impl, weld::TreeView&, void)
IMPL_LINK_NOARG( SvxMacroTabPage_, DoubleClickHdl_Impl, weld::TreeView&, bool)
{
    GenericHandler_Impl(this, nullptr);
    return true;
}

// handler for double click on the listbox, and for the assign/delete buttons
diff --git a/cui/source/dialogs/SpellDialog.cxx b/cui/source/dialogs/SpellDialog.cxx
index caa9b92..2574dd8 100644
--- a/cui/source/dialogs/SpellDialog.cxx
+++ b/cui/source/dialogs/SpellDialog.cxx
@@ -498,9 +498,10 @@ OUString SpellDialog::getReplacementString() const
    return getDotReplacementString(sOrigString, sReplacement);
}

IMPL_LINK_NOARG(SpellDialog, DoubleClickChangeHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(SpellDialog, DoubleClickChangeHdl, weld::TreeView&, bool)
{
    ChangeHdl(*m_xChangePB);
    return true;
}

IMPL_LINK_NOARG(SpellDialog, ChangeHdl, weld::Button&, void)
diff --git a/cui/source/dialogs/cuigaldlg.cxx b/cui/source/dialogs/cuigaldlg.cxx
index 660d7b5..acac953 100644
--- a/cui/source/dialogs/cuigaldlg.cxx
+++ b/cui/source/dialogs/cuigaldlg.cxx
@@ -966,7 +966,7 @@ IMPL_LINK_NOARG(TPGalleryThemeProperties, SelectFoundHdl, weld::TreeView&, void)
    }
}

IMPL_LINK_NOARG(TPGalleryThemeProperties, DClickFoundHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(TPGalleryThemeProperties, DClickFoundHdl, weld::TreeView&, bool)
{
    if( bInputAllowed )
    {
@@ -975,6 +975,7 @@ IMPL_LINK_NOARG(TPGalleryThemeProperties, DClickFoundHdl, weld::TreeView&, void)
        if (m_xLbxFound->count_selected_rows() == 1 && bEntriesFound)
            ClickTakeHdl(*m_xBtnTake);
    }
    return true;
}

IMPL_LINK_NOARG(TPGalleryThemeProperties, PreviewTimerHdl, Timer *, void)
diff --git a/cui/source/dialogs/hlmarkwn.cxx b/cui/source/dialogs/hlmarkwn.cxx
index 9589f60..08d1798 100644
--- a/cui/source/dialogs/hlmarkwn.cxx
+++ b/cui/source/dialogs/hlmarkwn.cxx
@@ -411,9 +411,10 @@ bool SvxHlinkDlgMarkWnd::SelectEntry(const OUString& aStrMark)
}

// Click on Apply-Button / Double-click on item in tree
IMPL_LINK_NOARG(SvxHlinkDlgMarkWnd, DoubleClickApplyHdl_Impl, weld::TreeView&, void)
IMPL_LINK_NOARG(SvxHlinkDlgMarkWnd, DoubleClickApplyHdl_Impl, weld::TreeView&, bool)
{
    ClickApplyHdl_Impl(*mxBtApply);
    return true;
}

IMPL_LINK_NOARG(SvxHlinkDlgMarkWnd, ClickApplyHdl_Impl, weld::Button&, void)
diff --git a/cui/source/dialogs/insdlg.cxx b/cui/source/dialogs/insdlg.cxx
index 63169d3..948a02d 100644
--- a/cui/source/dialogs/insdlg.cxx
+++ b/cui/source/dialogs/insdlg.cxx
@@ -76,9 +76,10 @@ InsertObjectDialog_Impl::InsertObjectDialog_Impl(weld::Window* pParent,
{
}

IMPL_LINK_NOARG(SvInsertOleDlg, DoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(SvInsertOleDlg, DoubleClickHdl, weld::TreeView&, bool)
{
    m_xDialog->response(RET_OK);
    return true;
}

IMPL_LINK_NOARG(SvInsertOleDlg, BrowseHdl, weld::Button&, void)
diff --git a/cui/source/dialogs/linkdlg.cxx b/cui/source/dialogs/linkdlg.cxx
index 33f7529..f8388ec 100644
--- a/cui/source/dialogs/linkdlg.cxx
+++ b/cui/source/dialogs/linkdlg.cxx
@@ -214,9 +214,10 @@ void SvBaseLinksDlg::LinksSelectHdl(weld::TreeView* pSvTabListBox)
    }
}

IMPL_LINK_NOARG( SvBaseLinksDlg, LinksDoubleClickHdl, weld::TreeView&, void )
IMPL_LINK_NOARG( SvBaseLinksDlg, LinksDoubleClickHdl, weld::TreeView&, bool )
{
    ChangeSourceClickHdl(*m_xPbChangeSource);
    return true;
}

IMPL_LINK_NOARG( SvBaseLinksDlg, AutomaticClickHdl, weld::Button&, void )
diff --git a/cui/source/dialogs/pastedlg.cxx b/cui/source/dialogs/pastedlg.cxx
index 3b08dcd..f9d9a76 100644
--- a/cui/source/dialogs/pastedlg.cxx
+++ b/cui/source/dialogs/pastedlg.cxx
@@ -56,9 +56,10 @@ IMPL_LINK_NOARG(SvPasteObjectDialog, SelectHdl, weld::TreeView&, void)
        m_xOKButton->set_sensitive(true);
}

IMPL_LINK_NOARG(SvPasteObjectDialog, DoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(SvPasteObjectDialog, DoubleClickHdl, weld::TreeView&, bool)
{
    m_xDialog->response(RET_OK);
    return true;
}

/*************************************************************************
diff --git a/cui/source/dialogs/thesdlg.cxx b/cui/source/dialogs/thesdlg.cxx
index dcb8805..5792d45 100644
--- a/cui/source/dialogs/thesdlg.cxx
+++ b/cui/source/dialogs/thesdlg.cxx
@@ -197,7 +197,7 @@ IMPL_LINK( SvxThesaurusDialog, AlternativesSelectHdl_Impl, weld::TreeView&, rBox
    }
}

IMPL_LINK( SvxThesaurusDialog, AlternativesDoubleClickHdl_Impl, weld::TreeView&, rBox, void )
IMPL_LINK( SvxThesaurusDialog, AlternativesDoubleClickHdl_Impl, weld::TreeView&, rBox, bool )
{
    int nEntry = rBox.get_selected_index();
    if (nEntry != -1)
@@ -217,6 +217,8 @@ IMPL_LINK( SvxThesaurusDialog, AlternativesDoubleClickHdl_Impl, weld::TreeView&,
    //! workaround to set the selection since calling SelectEntryPos within
    //! the double click handler does not work
    Application::PostUserEvent(LINK(this, SvxThesaurusDialog, SelectFirstHdl_Impl));

    return true;
}

IMPL_LINK_NOARG(SvxThesaurusDialog, SelectFirstHdl_Impl, void *, void)
diff --git a/cui/source/inc/SpellDialog.hxx b/cui/source/inc/SpellDialog.hxx
index 65de783..b38880e 100644
--- a/cui/source/inc/SpellDialog.hxx
+++ b/cui/source/inc/SpellDialog.hxx
@@ -171,7 +171,7 @@ private:
    std::unique_ptr<weld::CustomWeld> m_xSentenceEDWeld;

    DECL_LINK(ChangeHdl, weld::Button&, void);
    DECL_LINK(DoubleClickChangeHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickChangeHdl, weld::TreeView&, bool);
    DECL_LINK(ChangeAllHdl, weld::Button&, void);
    DECL_LINK(IgnoreAllHdl, weld::Button&, void);
    DECL_LINK(IgnoreHdl, weld::Button&, void);
diff --git a/cui/source/inc/autocdlg.hxx b/cui/source/inc/autocdlg.hxx
index dbf437d..3254573 100644
--- a/cui/source/inc/autocdlg.hxx
+++ b/cui/source/inc/autocdlg.hxx
@@ -114,7 +114,7 @@ class OfaSwAutoFmtOptionsPage : public SfxTabPage

    DECL_LINK(SelectHdl, weld::TreeView&, void);
    DECL_LINK(EditHdl, weld::Button&, void);
    DECL_LINK(DoubleClickEditHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickEditHdl, weld::TreeView&, bool);

    void CreateEntry(const OUString& rTxt, sal_uInt16 nCol);

diff --git a/cui/source/inc/cfg.hxx b/cui/source/inc/cfg.hxx
index e360d79..8163387 100644
--- a/cui/source/inc/cfg.hxx
+++ b/cui/source/inc/cfg.hxx
@@ -408,7 +408,7 @@ protected:

    DECL_LINK(MoveHdl, weld::Button&, void);
    DECL_LINK(SelectFunctionHdl, weld::TreeView&, void);
    DECL_LINK(FunctionDoubleClickHdl, weld::TreeView&, void);
    DECL_LINK(FunctionDoubleClickHdl, weld::TreeView&, bool);
    DECL_LINK(SelectSaveInLocation, weld::ComboBox&, void);
    DECL_LINK(SelectElementHdl, weld::ComboBox&, void);
    DECL_LINK(ImplUpdateDataHdl, Timer*, void);
diff --git a/cui/source/inc/cfgutil.hxx b/cui/source/inc/cfgutil.hxx
index 331a59a..e930c24 100644
--- a/cui/source/inc/cfgutil.hxx
+++ b/cui/source/inc/cfgutil.hxx
@@ -111,7 +111,7 @@ public:
    CuiConfigFunctionListBox(std::unique_ptr<weld::TreeView> xTreeView);
    void set_sensitive(bool bSensitive) { m_xTreeView->set_sensitive(bSensitive); }
    void connect_changed(const Link<weld::TreeView&, void>& rLink) { m_xTreeView->connect_changed(rLink); }
    void connect_row_activated(const Link<weld::TreeView&, void>& rLink) { m_xTreeView->connect_row_activated(rLink); }
    void connect_row_activated(const Link<weld::TreeView&, bool>& rLink) { m_xTreeView->connect_row_activated(rLink); }
    void freeze() { m_xTreeView->freeze(); }
    void thaw() { m_xTreeView->thaw(); }
    void append(const OUString& rId, const OUString& rStr, const weld::TreeIter* pParent = nullptr)
@@ -208,7 +208,6 @@ class CuiConfigGroupListBox
    OUString MapCommand2UIName(const OUString& sCommand);

    DECL_LINK(ExpandingHdl, const weld::TreeIter&, bool);
    DECL_LINK(OpenCurrentHdl, weld::TreeView&, void);

public:
    CuiConfigGroupListBox(std::unique_ptr<weld::TreeView> xTreeView);
@@ -250,7 +249,7 @@ class SvxScriptSelectorDialog : public weld::GenericDialogController

    DECL_LINK(ClickHdl, weld::Button&, void);
    DECL_LINK(SelectHdl, weld::TreeView&, void);
    DECL_LINK(FunctionDoubleClickHdl, weld::TreeView&, void);
    DECL_LINK(FunctionDoubleClickHdl, weld::TreeView&, bool);

    void                            UpdateUI();

diff --git a/cui/source/inc/cuigaldlg.hxx b/cui/source/inc/cuigaldlg.hxx
index 35142bf..f472d283 100644
--- a/cui/source/inc/cuigaldlg.hxx
+++ b/cui/source/inc/cuigaldlg.hxx
@@ -256,7 +256,7 @@ class TPGalleryThemeProperties : public SfxTabPage
    DECL_LINK(ClickTakeAllHdl, weld::Button&, void);
    DECL_LINK(SelectFoundHdl, weld::TreeView&, void);
    DECL_LINK(SelectFileTypeHdl, weld::ComboBox&, void);
    DECL_LINK(DClickFoundHdl, weld::TreeView&, void);
    DECL_LINK(DClickFoundHdl, weld::TreeView&, bool);
    DECL_LINK(PreviewTimerHdl, Timer*, void);
    DECL_LINK(DialogClosedHdl, css::ui::dialogs::DialogClosedEvent*, void);

diff --git a/cui/source/inc/dbregister.hxx b/cui/source/inc/dbregister.hxx
index 06ea780..e1bc2f6 100644
--- a/cui/source/inc/dbregister.hxx
+++ b/cui/source/inc/dbregister.hxx
@@ -42,7 +42,7 @@ namespace svx
        DECL_LINK( NewHdl, weld::Button&, void );
        DECL_LINK( EditHdl, weld::Button&, void );
        DECL_LINK( DeleteHdl, weld::Button&, void );
        DECL_LINK( PathBoxDoubleClickHdl, weld::TreeView&, void);
        DECL_LINK( PathBoxDoubleClickHdl, weld::TreeView&, bool);

        DECL_LINK( PathSelect_Impl, weld::TreeView&, void);

diff --git a/cui/source/inc/hlmarkwn.hxx b/cui/source/inc/hlmarkwn.hxx
index aa03d4d..9dd566a 100644
--- a/cui/source/inc/hlmarkwn.hxx
+++ b/cui/source/inc/hlmarkwn.hxx
@@ -53,7 +53,7 @@ protected:
    int FillTree( const css::uno::Reference< css::container::XNameAccess >& xLinks, const weld::TreeIter* pParentEntry =nullptr );

    DECL_LINK( ClickApplyHdl_Impl, weld::Button&, void );
    DECL_LINK( DoubleClickApplyHdl_Impl, weld::TreeView&, void );
    DECL_LINK( DoubleClickApplyHdl_Impl, weld::TreeView&, bool );
    DECL_LINK( ClickCloseHdl_Impl, weld::Button&, void );

public:
diff --git a/cui/source/inc/insdlg.hxx b/cui/source/inc/insdlg.hxx
index 50f1498..7c17022 100644
--- a/cui/source/inc/insdlg.hxx
+++ b/cui/source/inc/insdlg.hxx
@@ -63,7 +63,7 @@ class SvInsertOleDlg : public InsertObjectDialog_Impl
    std::unique_ptr<weld::CheckButton> m_xCbFilelink;
    std::unique_ptr<weld::CheckButton> m_xCbAsIcon;

    DECL_LINK(DoubleClickHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, bool);
    DECL_LINK(BrowseHdl, weld::Button&, void);
    DECL_LINK(RadioHdl, weld::Button&, void);
    bool IsCreateNew() const override { return m_xRbNewObject->get_active(); }
diff --git a/cui/source/inc/linkdlg.hxx b/cui/source/inc/linkdlg.hxx
index 5ef41e9..90d51ab 100644
--- a/cui/source/inc/linkdlg.hxx
+++ b/cui/source/inc/linkdlg.hxx
@@ -58,7 +58,7 @@ class SvBaseLinksDlg : public weld::GenericDialogController
    ScopedVclPtr<VirtualDevice> m_xVirDev;

    DECL_LINK( LinksSelectHdl, weld::TreeView&, void );
    DECL_LINK( LinksDoubleClickHdl, weld::TreeView&, void );
    DECL_LINK( LinksDoubleClickHdl, weld::TreeView&, bool );
    DECL_LINK( AutomaticClickHdl, weld::Button&, void );
    DECL_LINK( ManualClickHdl, weld::Button&, void );
    DECL_LINK( UpdateNowClickHdl, weld::Button&, void);
diff --git a/cui/source/inc/macroass.hxx b/cui/source/inc/macroass.hxx
index 2069cc4..d440368 100644
--- a/cui/source/inc/macroass.hxx
+++ b/cui/source/inc/macroass.hxx
@@ -38,7 +38,7 @@ class SfxMacroTabPage final : public SfxTabPage
    DECL_LINK(SelectGroup_Impl, weld::TreeView&, void);
    DECL_LINK(SelectMacro_Impl, weld::TreeView&, void);

    DECL_LINK(AssignDeleteHdl_Impl, weld::TreeView&, void);
    DECL_LINK(AssignDeleteHdl_Impl, weld::TreeView&, bool);
    DECL_LINK(AssignDeleteClickHdl_Impl, weld::Button&, void);
    void AssignDeleteHdl(const weld::Widget*);
    DECL_LINK( TimeOut_Impl, Timer*, void );
diff --git a/cui/source/inc/macropg.hxx b/cui/source/inc/macropg.hxx
index c761e19..3ffb8af 100644
--- a/cui/source/inc/macropg.hxx
+++ b/cui/source/inc/macropg.hxx
@@ -56,7 +56,7 @@ class SvxMacroTabPage_ : public SfxTabPage
{
    DECL_LINK( SelectEvent_Impl, weld::TreeView&, void );
    DECL_LINK( AssignDeleteHdl_Impl, weld::Button&, void );
    DECL_LINK( DoubleClickHdl_Impl, weld::TreeView&, void );
    DECL_LINK( DoubleClickHdl_Impl, weld::TreeView&, bool );

    static void GenericHandler_Impl( SvxMacroTabPage_* pThis, const weld::Button* pBtn );

diff --git a/cui/source/inc/numfmt.hxx b/cui/source/inc/numfmt.hxx
index 5d68d40..9a49337 100644
--- a/cui/source/inc/numfmt.hxx
+++ b/cui/source/inc/numfmt.hxx
@@ -132,7 +132,7 @@ private:
    bool    Click_Impl(weld::Button& rIB);
    // Handler
    DECL_LINK(LostFocusHdl_Impl, weld::Widget&, void);
    DECL_LINK(DoubleClickHdl_Impl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl_Impl, weld::TreeView&, bool);
    DECL_LINK(SelFormatListBoxHdl_Impl, weld::ComboBox&, void);
    DECL_LINK(SelFormatTreeListBoxHdl_Impl, weld::TreeView&, void);
    DECL_LINK(SelFormatClickHdl_Impl, weld::Button&, void);
diff --git a/cui/source/inc/optlingu.hxx b/cui/source/inc/optlingu.hxx
index 37b3f09..1571ae8 100644
--- a/cui/source/inc/optlingu.hxx
+++ b/cui/source/inc/optlingu.hxx
@@ -123,7 +123,7 @@ private:

    DECL_LINK( SelectHdl_Impl, weld::TreeView&, void );
    DECL_LINK( ClickHdl_Impl, weld::Button&, void );
    DECL_LINK( BoxDoubleClickHdl_Impl, weld::TreeView&, void );
    DECL_LINK( BoxDoubleClickHdl_Impl, weld::TreeView&, bool );
    typedef std::pair<int, int> row_col;
    DECL_LINK( ModulesBoxCheckButtonHdl_Impl, const row_col&, void );
    DECL_LINK( DicsBoxCheckButtonHdl_Impl, const row_col&, void );
diff --git a/cui/source/inc/optpath.hxx b/cui/source/inc/optpath.hxx
index 5dea8c1..cc3d67b 100644
--- a/cui/source/inc/optpath.hxx
+++ b/cui/source/inc/optpath.hxx
@@ -45,7 +45,7 @@ private:
    void        ChangeCurrentEntry( const OUString& _rFolder );

    DECL_LINK(PathHdl_Impl, weld::Button&, void);
    DECL_LINK(DoubleClickPathHdl_Impl, weld::TreeView&, void);
    DECL_LINK(DoubleClickPathHdl_Impl, weld::TreeView&, bool);
    DECL_LINK(StandardHdl_Impl, weld::Button&, void);

    DECL_LINK(PathSelect_Impl, weld::TreeView&, void);
diff --git a/cui/source/inc/pastedlg.hxx b/cui/source/inc/pastedlg.hxx
index ff66bec..565101d 100644
--- a/cui/source/inc/pastedlg.hxx
+++ b/cui/source/inc/pastedlg.hxx
@@ -43,7 +43,7 @@ class SvPasteObjectDialog : public weld::GenericDialogController

    void            SelectObject();
    DECL_LINK(SelectHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, bool);

public:
    SvPasteObjectDialog(weld::Window* pParent);
diff --git a/cui/source/inc/tabstpge.hxx b/cui/source/inc/tabstpge.hxx
index a49d0e9..6c9e63b 100644
--- a/cui/source/inc/tabstpge.hxx
+++ b/cui/source/inc/tabstpge.hxx
@@ -133,7 +133,7 @@ private:
    DECL_LINK(FillTypeCheckHdl_Impl, weld::ToggleButton&, void);
    DECL_LINK(TabTypeCheckHdl_Impl, weld::ToggleButton&, void);

    DECL_LINK(SelectHdl_Impl, weld::TreeView&, void);
    DECL_LINK(SelectHdl_Impl, weld::TreeView&, bool);
    DECL_LINK(ModifyHdl_Impl, weld::ComboBox&, void);
    DECL_LINK(ReformatHdl_Impl, weld::Widget&, void);
    DECL_LINK(GetFillCharHdl_Impl, weld::Widget&, void);
diff --git a/cui/source/inc/thesdlg.hxx b/cui/source/inc/thesdlg.hxx
index 46af0be..65c4050 100644
--- a/cui/source/inc/thesdlg.hxx
+++ b/cui/source/inc/thesdlg.hxx
@@ -54,7 +54,7 @@ public:
    DECL_LINK( LanguageHdl_Impl, weld::ComboBox&, void );
    DECL_LINK( WordSelectHdl_Impl, weld::ComboBox&, void );
    DECL_LINK( AlternativesSelectHdl_Impl, weld::TreeView&, void );
    DECL_LINK( AlternativesDoubleClickHdl_Impl, weld::TreeView&, void );
    DECL_LINK( AlternativesDoubleClickHdl_Impl, weld::TreeView&, bool );
    DECL_LINK( SelectFirstHdl_Impl, void*, void );
    DECL_LINK( ReplaceEditHdl_Impl, weld::Entry&, void );
    DECL_LINK( ModifyTimer_Hdl, Timer *, void );
diff --git a/cui/source/inc/treeopt.hxx b/cui/source/inc/treeopt.hxx
index 1042b68..aa6f7f5 100644
--- a/cui/source/inc/treeopt.hxx
+++ b/cui/source/inc/treeopt.hxx
@@ -159,7 +159,6 @@ private:

    void            ApplyOptions( bool deactivate );

    DECL_STATIC_LINK(OfaTreeOptionsDialog, ExpandCollapseHdl_Impl, weld::TreeView&, void);
    DECL_LINK(ShowPageHdl_Impl, weld::TreeView&, void);
    DECL_LINK(BackHdl_Impl, weld::Button&, void);
    DECL_LINK(ApplyHdl_Impl, weld::Button&, void);
diff --git a/cui/source/options/dbregister.cxx b/cui/source/options/dbregister.cxx
index 30a8b44..0cf1507 100644
--- a/cui/source/options/dbregister.cxx
+++ b/cui/source/options/dbregister.cxx
@@ -204,9 +204,10 @@ IMPL_LINK_NOARG(DbRegistrationOptionsPage, NewHdl, weld::Button&, void)
    openLinkDialog(OUString(),OUString());
}

IMPL_LINK_NOARG(DbRegistrationOptionsPage, PathBoxDoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(DbRegistrationOptionsPage, PathBoxDoubleClickHdl, weld::TreeView&, bool)
{
    EditHdl(*m_xEdit);
    return true;
}

IMPL_LINK_NOARG(DbRegistrationOptionsPage, EditHdl, weld::Button&, void)
diff --git a/cui/source/options/optaboutconfig.cxx b/cui/source/options/optaboutconfig.cxx
index 89f3cd3..2b7a913 100644
--- a/cui/source/options/optaboutconfig.cxx
+++ b/cui/source/options/optaboutconfig.cxx
@@ -557,9 +557,10 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, ResetBtnHdl_Impl, weld::Button&, void )
    Reset();
}

IMPL_LINK_NOARG(CuiAboutConfigTabPage, DoubleClickHdl_Impl, weld::TreeView&, void)
IMPL_LINK_NOARG(CuiAboutConfigTabPage, DoubleClickHdl_Impl, weld::TreeView&, bool)
{
    StandardHdl_Impl(*m_xEditBtn);
    return true;
}

IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl, weld::Button&, void )
diff --git a/cui/source/options/optaboutconfig.hxx b/cui/source/options/optaboutconfig.hxx
index 008d800..b778185 100644
--- a/cui/source/options/optaboutconfig.hxx
+++ b/cui/source/options/optaboutconfig.hxx
@@ -57,7 +57,7 @@ private:
    void InsertEntry(const prefBoxEntry& rEntry);

    DECL_LINK(StandardHdl_Impl, weld::Button&, void);
    DECL_LINK(DoubleClickHdl_Impl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl_Impl, weld::TreeView&, bool);
    DECL_LINK(ResetBtnHdl_Impl, weld::Button&, void);
    DECL_LINK(SearchHdl_Impl, weld::Button&, void);
    DECL_LINK(ExpandingHdl_Impl, const weld::TreeIter&, bool);
diff --git a/cui/source/options/optjava.cxx b/cui/source/options/optjava.cxx
index 8fc6da8..bd88d04 100644
--- a/cui/source/options/optjava.cxx
+++ b/cui/source/options/optjava.cxx
@@ -659,9 +659,10 @@ IMPL_LINK_NOARG(SvxJavaParameterDlg, SelectHdl_Impl, weld::TreeView&, void)
    EnableRemoveButton();
}

IMPL_LINK_NOARG(SvxJavaParameterDlg, DblClickHdl_Impl, weld::TreeView&, void)
IMPL_LINK_NOARG(SvxJavaParameterDlg, DblClickHdl_Impl, weld::TreeView&, bool)
{
    EditParameter();
    return true;
}

IMPL_LINK_NOARG(SvxJavaParameterDlg, RemoveHdl_Impl, weld::Button&, void)
diff --git a/cui/source/options/optjava.hxx b/cui/source/options/optjava.hxx
index 2000145..e5537f1 100644
--- a/cui/source/options/optjava.hxx
+++ b/cui/source/options/optjava.hxx
@@ -130,7 +130,7 @@ private:
    DECL_LINK(ModifyHdl_Impl, weld::Entry&, void);
    DECL_LINK(AssignHdl_Impl, weld::Button&, void);
    DECL_LINK(SelectHdl_Impl, weld::TreeView&, void);
    DECL_LINK(DblClickHdl_Impl, weld::TreeView&, void);
    DECL_LINK(DblClickHdl_Impl, weld::TreeView&, bool);
    DECL_LINK(RemoveHdl_Impl, weld::Button&, void);
    DECL_LINK(EditHdl_Impl, weld::Button&, void);

diff --git a/cui/source/options/optlingu.cxx b/cui/source/options/optlingu.cxx
index bdc8579..c8ee82a 100644
--- a/cui/source/options/optlingu.cxx
+++ b/cui/source/options/optlingu.cxx
@@ -1270,7 +1270,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
                                         m_xLinguOptionsCLB->get_height_rows(5));
}

IMPL_LINK(SvxLinguTabPage, BoxDoubleClickHdl_Impl, weld::TreeView&, rBox, void)
IMPL_LINK(SvxLinguTabPage, BoxDoubleClickHdl_Impl, weld::TreeView&, rBox, bool)
{
    if (&rBox == m_xLinguModulesCLB.get())
    {
@@ -1284,6 +1284,7 @@ IMPL_LINK(SvxLinguTabPage, BoxDoubleClickHdl_Impl, weld::TreeView&, rBox, void)
    {
        ClickHdl_Impl(*m_xLinguOptionsEditPB);
    }
    return true;
}

IMPL_LINK_NOARG(SvxLinguTabPage, PostDblClickHdl_Impl, void*, void)
diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx
index 3760e16..73110b9 100644
--- a/cui/source/options/optpath.cxx
+++ b/cui/source/options/optpath.cxx
@@ -457,9 +457,10 @@ void SvxPathTabPage::ChangeCurrentEntry( const OUString& _rFolder )
    }
}

IMPL_LINK_NOARG(SvxPathTabPage, DoubleClickPathHdl_Impl, weld::TreeView&, void)
IMPL_LINK_NOARG(SvxPathTabPage, DoubleClickPathHdl_Impl, weld::TreeView&, bool)
{
    PathHdl_Impl(*m_xPathBtn);
    return true;
}

IMPL_LINK_NOARG(SvxPathTabPage, PathHdl_Impl, weld::Button&, void)
diff --git a/cui/source/options/treeopt.cxx b/cui/source/options/treeopt.cxx
index ab802ec..845e765 100644
--- a/cui/source/options/treeopt.cxx
+++ b/cui/source/options/treeopt.cxx
@@ -608,14 +608,6 @@ sal_uInt16  OfaTreeOptionsDialog::AddGroup(const OUString& rGroupName,
    return nRet - 1;
}

IMPL_STATIC_LINK(OfaTreeOptionsDialog, ExpandCollapseHdl_Impl, weld::TreeView&, xTreeView, void)
{
    std::unique_ptr<weld::TreeIter> xEntry(xTreeView.make_iterator());
    xTreeView.get_selected(xEntry.get());
    if (xTreeView.iter_has_child(*xEntry))
        xTreeView.get_row_expanded(*xEntry) ? xTreeView.collapse_row(*xEntry) : xTreeView.expand_row(*xEntry);
}

IMPL_LINK_NOARG(OfaTreeOptionsDialog, ShowPageHdl_Impl, weld::TreeView&, void)
{
    SelectHdl_Impl();
@@ -749,7 +741,6 @@ void OfaTreeOptionsDialog::ApplyItemSets()
void OfaTreeOptionsDialog::InitTreeAndHandler()
{
    xTreeLB->set_help_id(HID_OFADLG_TREELISTBOX);
    xTreeLB->connect_row_activated( LINK( this, OfaTreeOptionsDialog, ExpandCollapseHdl_Impl ) );
    xTreeLB->connect_changed( LINK( this, OfaTreeOptionsDialog, ShowPageHdl_Impl ) );
    xBackPB->connect_clicked( LINK( this, OfaTreeOptionsDialog, BackHdl_Impl ) );
    xApplyPB->connect_clicked( LINK( this, OfaTreeOptionsDialog, ApplyHdl_Impl ) );
diff --git a/cui/source/tabpages/autocdlg.cxx b/cui/source/tabpages/autocdlg.cxx
index d95471f..1f5f78d 100644
--- a/cui/source/tabpages/autocdlg.cxx
+++ b/cui/source/tabpages/autocdlg.cxx
@@ -611,9 +611,10 @@ IMPL_LINK(OfaSwAutoFmtOptionsPage, SelectHdl, weld::TreeView&, rBox, void)
    m_xEditPB->set_sensitive(rBox.get_selected_id().toInt64() != 0);
}

IMPL_LINK_NOARG(OfaSwAutoFmtOptionsPage, DoubleClickEditHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(OfaSwAutoFmtOptionsPage, DoubleClickEditHdl, weld::TreeView&, bool)
{
    EditHdl(*m_xEditPB);
    return true;
}

IMPL_LINK_NOARG(OfaSwAutoFmtOptionsPage, EditHdl, weld::Button&, void)
diff --git a/cui/source/tabpages/macroass.cxx b/cui/source/tabpages/macroass.cxx
index 0a62c5a..df3e47b 100644
--- a/cui/source/tabpages/macroass.cxx
+++ b/cui/source/tabpages/macroass.cxx
@@ -259,9 +259,10 @@ IMPL_LINK(SfxMacroTabPage, AssignDeleteClickHdl_Impl, weld::Button&, rBtn, void)
    AssignDeleteHdl(&rBtn);
}

IMPL_LINK(SfxMacroTabPage, AssignDeleteHdl_Impl, weld::TreeView&, rBtn, void)
IMPL_LINK(SfxMacroTabPage, AssignDeleteHdl_Impl, weld::TreeView&, rBtn, bool)
{
    AssignDeleteHdl(&rBtn);
    return true;
}

void SfxMacroTabPage::AssignDeleteHdl(const weld::Widget* pBtn)
@@ -316,7 +317,7 @@ IMPL_LINK( SfxMacroTabPage, TimeOut_Impl, Timer*,, void )
void SfxMacroTabPage::InitAndSetHandler()
{
    weld::TreeView& rListBox = mpImpl->m_xEventLB->GetListBox();
    Link<weld::TreeView&,void> aLnk(LINK(this, SfxMacroTabPage, AssignDeleteHdl_Impl));
    Link<weld::TreeView&,bool> aLnk(LINK(this, SfxMacroTabPage, AssignDeleteHdl_Impl));
    mpImpl->m_xMacroLB->connect_row_activated( aLnk);
    mpImpl->m_xDeletePB->connect_clicked(LINK(this, SfxMacroTabPage, AssignDeleteClickHdl_Impl));
    mpImpl->m_xAssignPB->connect_clicked(LINK(this, SfxMacroTabPage, AssignDeleteClickHdl_Impl));
diff --git a/cui/source/tabpages/numfmt.cxx b/cui/source/tabpages/numfmt.cxx
index 18517527..3a7dc1b 100644
--- a/cui/source/tabpages/numfmt.cxx
+++ b/cui/source/tabpages/numfmt.cxx
@@ -1118,8 +1118,7 @@ void SvxNumberFormatTabPage::UpdateDecimalsDenominatorEditBox()
#*  Output:     ---
#*
#************************************************************************/

IMPL_LINK(SvxNumberFormatTabPage, DoubleClickHdl_Impl, weld::TreeView&, rLb, void)
IMPL_LINK(SvxNumberFormatTabPage, DoubleClickHdl_Impl, weld::TreeView&, rLb, bool)
{
    SelFormatHdl_Impl(&rLb);

@@ -1127,8 +1126,9 @@ IMPL_LINK(SvxNumberFormatTabPage, DoubleClickHdl_Impl, weld::TreeView&, rLb, voi
    assert(pController);
    weld::Button& rOkButton = pController->GetOKButton();
    rOkButton.clicked();
}

    return true;
}

/*************************************************************************
#*  Method:    SelFormatHdl_Impl
diff --git a/cui/source/tabpages/tabstpge.cxx b/cui/source/tabpages/tabstpge.cxx
index 5c347ff..f9b7205 100644
--- a/cui/source/tabpages/tabstpge.cxx
+++ b/cui/source/tabpages/tabstpge.cxx
@@ -615,7 +615,7 @@ IMPL_LINK_NOARG(SvxTabulatorTabPage, GetDezCharHdl_Impl, weld::Widget&, void)
    }
}

IMPL_LINK_NOARG(SvxTabulatorTabPage, SelectHdl_Impl, weld::TreeView&, void)
IMPL_LINK_NOARG(SvxTabulatorTabPage, SelectHdl_Impl, weld::TreeView&, bool)
{
    const int nPos = FindCurrentTab();
    if (nPos != -1)
@@ -624,6 +624,7 @@ IMPL_LINK_NOARG(SvxTabulatorTabPage, SelectHdl_Impl, weld::TreeView&, void)
        m_xNewBtn->set_sensitive(false);
        SetFillAndTabType_Impl();
    }
    return true;
}

OUString SvxTabulatorTabPage::FormatTab()
diff --git a/dbaccess/source/ui/dlg/CollectionView.cxx b/dbaccess/source/ui/dlg/CollectionView.cxx
index 14f94290..a55badb 100644
--- a/dbaccess/source/ui/dlg/CollectionView.cxx
+++ b/dbaccess/source/ui/dlg/CollectionView.cxx
@@ -226,7 +226,7 @@ IMPL_LINK_NOARG(OCollectionView, Up_Click, weld::Button&, void)
    }
}

IMPL_LINK_NOARG(OCollectionView, Dbl_Click_FileView, weld::TreeView&, void)
IMPL_LINK_NOARG(OCollectionView, Dbl_Click_FileView, weld::TreeView&, bool)
{
    try
    {
@@ -252,6 +252,8 @@ IMPL_LINK_NOARG(OCollectionView, Dbl_Click_FileView, weld::TreeView&, void)
    {
        DBG_UNHANDLED_EXCEPTION("dbaccess");
    }

    return true;
}

void OCollectionView::initCurrentPath()
diff --git a/dbaccess/source/ui/dlg/adtabdlg.cxx b/dbaccess/source/ui/dlg/adtabdlg.cxx
index 9cb22f5..e699870 100644
--- a/dbaccess/source/ui/dlg/adtabdlg.cxx
+++ b/dbaccess/source/ui/dlg/adtabdlg.cxx
@@ -407,7 +407,7 @@ IMPL_LINK_NOARG( OAddTableDlg, AddClickHdl, weld::Button&, void )
    TableListDoubleClickHdl(m_xTableList->GetWidget());
}

IMPL_LINK_NOARG(OAddTableDlg, TableListDoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(OAddTableDlg, TableListDoubleClickHdl, weld::TreeView&, bool)
{
    if ( impl_isAddAllowed() )
    {
@@ -421,6 +421,7 @@ IMPL_LINK_NOARG(OAddTableDlg, TableListDoubleClickHdl, weld::TreeView&, void)
        if ( !impl_isAddAllowed() )
            m_xDialog->response(RET_CLOSE);
    }
    return true;
}

IMPL_LINK_NOARG( OAddTableDlg, TableListSelectHdl, weld::TreeView&, void )
diff --git a/dbaccess/source/ui/dlg/dsselect.cxx b/dbaccess/source/ui/dlg/dsselect.cxx
index c7eee5b6..e9e5aa2 100644
--- a/dbaccess/source/ui/dlg/dsselect.cxx
+++ b/dbaccess/source/ui/dlg/dsselect.cxx
@@ -65,10 +65,11 @@ ODatasourceSelectDialog::~ODatasourceSelectDialog()
{
}

IMPL_LINK(ODatasourceSelectDialog, ListDblClickHdl, weld::TreeView&, rListBox, void)
IMPL_LINK(ODatasourceSelectDialog, ListDblClickHdl, weld::TreeView&, rListBox, bool)
{
    if (rListBox.n_children())
        m_xDialog->response(RET_OK);
    return true;
}

short ODatasourceSelectDialog::run()
diff --git a/dbaccess/source/ui/dlg/dsselect.hxx b/dbaccess/source/ui/dlg/dsselect.hxx
index b27693a..2f2322de 100644
--- a/dbaccess/source/ui/dlg/dsselect.hxx
+++ b/dbaccess/source/ui/dlg/dsselect.hxx
@@ -57,7 +57,7 @@ public:
    virtual short run() override;

private:
    DECL_LINK( ListDblClickHdl, weld::TreeView&, void );
    DECL_LINK( ListDblClickHdl, weld::TreeView&, bool );
#ifdef HAVE_ODBC_ADMINISTRATION
    DECL_LINK(ManageClickHdl, weld::Button&, void);
    DECL_LINK(ManageProcessFinished, void*, void);
diff --git a/dbaccess/source/ui/inc/CollectionView.hxx b/dbaccess/source/ui/inc/CollectionView.hxx
index 949e60b..4dd484f 100644
--- a/dbaccess/source/ui/inc/CollectionView.hxx
+++ b/dbaccess/source/ui/inc/CollectionView.hxx
@@ -47,7 +47,7 @@ namespace dbaui
        DECL_LINK(Up_Click, weld::Button&, void);
        DECL_LINK(NewFolder_Click, weld::Button&, void);
        DECL_LINK(Save_Click, weld::Button&, void);
        DECL_LINK(Dbl_Click_FileView, weld::TreeView&, void);
        DECL_LINK(Dbl_Click_FileView, weld::TreeView&, bool);

        /// sets the fixedtext to the right content
        void initCurrentPath();
diff --git a/dbaccess/source/ui/inc/WColumnSelect.hxx b/dbaccess/source/ui/inc/WColumnSelect.hxx
index e024a07..59ebc0a 100644
--- a/dbaccess/source/ui/inc/WColumnSelect.hxx
+++ b/dbaccess/source/ui/inc/WColumnSelect.hxx
@@ -40,7 +40,7 @@ namespace dbaui
        std::unique_ptr<weld::TreeView> m_xNewColumnNames; // right side

        DECL_LINK( ButtonClickHdl, weld::Button&, void );
        DECL_LINK( ListDoubleClickHdl, weld::TreeView&, void );
        DECL_LINK( ListDoubleClickHdl, weld::TreeView&, bool );

        static void clearListBox(weld::TreeView& _rListBox);
        static void fillColumns(weld::TreeView const * pRight,
diff --git a/dbaccess/source/ui/inc/adtabdlg.hxx b/dbaccess/source/ui/inc/adtabdlg.hxx
index 1c87f218b..bad72a5 100644
--- a/dbaccess/source/ui/inc/adtabdlg.hxx
+++ b/dbaccess/source/ui/inc/adtabdlg.hxx
@@ -69,7 +69,7 @@ namespace dbaui

        DECL_LINK( AddClickHdl, weld::Button&, void );
        DECL_LINK( CloseClickHdl, weld::Button&, void);
        DECL_LINK( TableListDoubleClickHdl, weld::TreeView&, void );
        DECL_LINK( TableListDoubleClickHdl, weld::TreeView&, bool );
        DECL_LINK( TableListSelectHdl, weld::TreeView&, void );
        DECL_LINK( OnTypeSelected, weld::Button&, void );

diff --git a/dbaccess/source/ui/misc/WColumnSelect.cxx b/dbaccess/source/ui/misc/WColumnSelect.cxx
index d137ef8..077e010 100644
--- a/dbaccess/source/ui/misc/WColumnSelect.cxx
+++ b/dbaccess/source/ui/misc/WColumnSelect.cxx
@@ -226,7 +226,7 @@ IMPL_LINK(OWizColumnSelect, ButtonClickHdl, weld::Button&, rButton, void)
        m_xOrgColumnNames->select(0);
}

IMPL_LINK( OWizColumnSelect, ListDoubleClickHdl, weld::TreeView&, rListBox, void )
IMPL_LINK( OWizColumnSelect, ListDoubleClickHdl, weld::TreeView&, rListBox, bool )
{
    weld::TreeView *pLeft,*pRight;
    if (&rListBox == m_xOrgColumnNames.get())
@@ -259,6 +259,8 @@ IMPL_LINK( OWizColumnSelect, ListDoubleClickHdl, weld::TreeView&, rListBox, void
        pLeft->remove(*it);

    enableButtons();

    return true;
}

void OWizColumnSelect::clearListBox(weld::TreeView& rListBox)
diff --git a/extensions/source/abpilot/tableselectionpage.cxx b/extensions/source/abpilot/tableselectionpage.cxx
index 585a5ea..abf8e58 100644
--- a/extensions/source/abpilot/tableselectionpage.cxx
+++ b/extensions/source/abpilot/tableselectionpage.cxx
@@ -67,10 +67,11 @@ namespace abp
        m_xTableList->select_text(rSettings.sSelectedTable);
    }

    IMPL_LINK_NOARG( TableSelectionPage, OnTableDoubleClicked, weld::TreeView&, void )
    IMPL_LINK_NOARG( TableSelectionPage, OnTableDoubleClicked, weld::TreeView&, bool )
    {
        if (m_xTableList->count_selected_rows() == 1)
            getDialog()->travelNext();
        return true;
    }

    IMPL_LINK_NOARG( TableSelectionPage, OnTableSelected, weld::TreeView&, void )
diff --git a/extensions/source/abpilot/tableselectionpage.hxx b/extensions/source/abpilot/tableselectionpage.hxx
index 2f96aeb..e527b22 100644
--- a/extensions/source/abpilot/tableselectionpage.hxx
+++ b/extensions/source/abpilot/tableselectionpage.hxx
@@ -44,7 +44,7 @@ namespace abp
        virtual bool        canAdvance() const override;

        DECL_LINK(OnTableSelected, weld::TreeView&, void);
        DECL_LINK(OnTableDoubleClicked, weld::TreeView&, void);
        DECL_LINK(OnTableDoubleClicked, weld::TreeView&, bool);
    };

}   // namespace abp
diff --git a/extensions/source/bibliography/datman.cxx b/extensions/source/bibliography/datman.cxx
index d5d9772..8364deb 100644
--- a/extensions/source/bibliography/datman.cxx
+++ b/extensions/source/bibliography/datman.cxx
@@ -404,7 +404,7 @@ class DBChangeDialog_Impl : public weld::GenericDialogController

    std::unique_ptr<weld::TreeView> m_xSelectionLB;

    DECL_LINK(DoubleClickHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, bool);
public:
    DBChangeDialog_Impl(weld::Window* pParent, BibDataManager* pMan);

@@ -433,9 +433,10 @@ DBChangeDialog_Impl::DBChangeDialog_Impl(weld::Window* pParent, BibDataManager* 
    }
}

IMPL_LINK_NOARG(DBChangeDialog_Impl, DoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(DBChangeDialog_Impl, DoubleClickHdl, weld::TreeView&, bool)
{
    m_xDialog->response(RET_OK);
    return true;
}

OUString  DBChangeDialog_Impl::GetCurrentURL()const
diff --git a/extensions/source/dbpilots/commonpagesdbp.cxx b/extensions/source/dbpilots/commonpagesdbp.cxx
index 513d020..30e7602 100644
--- a/extensions/source/dbpilots/commonpagesdbp.cxx
+++ b/extensions/source/dbpilots/commonpagesdbp.cxx
@@ -209,10 +209,11 @@ namespace dbp
        }
    }

    IMPL_LINK(OTableSelectionPage, OnListboxDoubleClicked, weld::TreeView&, _rBox, void)
    IMPL_LINK(OTableSelectionPage, OnListboxDoubleClicked, weld::TreeView&, _rBox, bool)
    {
        if (_rBox.count_selected_rows())
            getDialog()->travelNext();
        return true;
    }

    IMPL_LINK(OTableSelectionPage, OnListboxSelection, weld::TreeView&, _rBox, void)
diff --git a/extensions/source/dbpilots/commonpagesdbp.hxx b/extensions/source/dbpilots/commonpagesdbp.hxx
index 08ddd56..5d93b93 100644
--- a/extensions/source/dbpilots/commonpagesdbp.hxx
+++ b/extensions/source/dbpilots/commonpagesdbp.hxx
@@ -50,7 +50,7 @@ namespace dbp
        virtual bool        commitPage( ::vcl::WizardTypes::CommitPageReason _eReason ) override;

        DECL_LINK( OnListboxSelection, weld::TreeView&, void );
        DECL_LINK( OnListboxDoubleClicked, weld::TreeView&, void );
        DECL_LINK( OnListboxDoubleClicked, weld::TreeView&, bool );
        DECL_LINK( OnSearchClicked, weld::Button&, void );

        void implFillTables(const css::uno::Reference< css::sdbc::XConnection >&
diff --git a/extensions/source/dbpilots/gridwizard.cxx b/extensions/source/dbpilots/gridwizard.cxx
index f64897c..3f97933 100644
--- a/extensions/source/dbpilots/gridwizard.cxx
+++ b/extensions/source/dbpilots/gridwizard.cxx
@@ -366,13 +366,12 @@ namespace dbp
        getDialog()->enableButtons(WizardButtonFlags::FINISH, 0 != m_xSelFields->n_children());
    }

    IMPL_LINK(OGridFieldsSelection, OnEntryDoubleClicked, weld::TreeView&, rList, void)
    IMPL_LINK(OGridFieldsSelection, OnEntryDoubleClicked, weld::TreeView&, rList, bool)
    {
        weld::Button* pSimulateButton = m_xExistFields.get() == &rList ? m_xSelectOne.get() : m_xDeselectOne.get();
        if (pSimulateButton->get_sensitive())
        {
            OnMoveOneEntry(*pSimulateButton);
        }
        return true;
    }

    IMPL_LINK_NOARG(OGridFieldsSelection, OnEntrySelected, weld::TreeView&, void)
diff --git a/extensions/source/dbpilots/gridwizard.hxx b/extensions/source/dbpilots/gridwizard.hxx
index c8258cd..5eb9732 100644
--- a/extensions/source/dbpilots/gridwizard.hxx
+++ b/extensions/source/dbpilots/gridwizard.hxx
@@ -94,7 +94,7 @@ namespace dbp
        DECL_LINK(OnMoveOneEntry, weld::Button&, void);
        DECL_LINK(OnMoveAllEntries, weld::Button&, void);
        DECL_LINK(OnEntrySelected, weld::TreeView&, void);
        DECL_LINK(OnEntryDoubleClicked, weld::TreeView&, void);
        DECL_LINK(OnEntryDoubleClicked, weld::TreeView&, bool);

        void implCheckButtons();
    };
diff --git a/extensions/source/dbpilots/listcombowizard.cxx b/extensions/source/dbpilots/listcombowizard.cxx
index 8192180..a1440f2 100644
--- a/extensions/source/dbpilots/listcombowizard.cxx
+++ b/extensions/source/dbpilots/listcombowizard.cxx
@@ -292,10 +292,11 @@ namespace dbp
        updateDialogTravelUI();
    }

    IMPL_LINK( OContentTableSelection, OnTableDoubleClicked, weld::TreeView&, _rListBox, void )
    IMPL_LINK( OContentTableSelection, OnTableDoubleClicked, weld::TreeView&, _rListBox, bool )
    {
        if (_rListBox.count_selected_rows())
            getDialog()->travelNext();
        return true;
    }

    void OContentTableSelection::initializePage()
@@ -369,10 +370,11 @@ namespace dbp
        return 0 != m_xSelectTableField->count_selected_rows();
    }

    IMPL_LINK_NOARG( OContentFieldSelection, OnTableDoubleClicked, weld::TreeView&, void )
    IMPL_LINK_NOARG( OContentFieldSelection, OnTableDoubleClicked, weld::TreeView&, bool )
    {
        if (m_xSelectTableField->count_selected_rows())
            getDialog()->travelNext();
        return true;
    }

    IMPL_LINK_NOARG( OContentFieldSelection, OnFieldSelected, weld::TreeView&, void )
diff --git a/extensions/source/dbpilots/listcombowizard.hxx b/extensions/source/dbpilots/listcombowizard.hxx
index d01d270..6fad301 100644
--- a/extensions/source/dbpilots/listcombowizard.hxx
+++ b/extensions/source/dbpilots/listcombowizard.hxx
@@ -109,7 +109,7 @@ namespace dbp
        virtual bool        commitPage( ::vcl::WizardTypes::CommitPageReason _eReason ) override;
        virtual bool        canAdvance() const override;

        DECL_LINK( OnTableDoubleClicked, weld::TreeView&, void );
        DECL_LINK( OnTableDoubleClicked, weld::TreeView&, bool );
        DECL_LINK( OnTableSelected, weld::TreeView&, void );
    };

@@ -125,7 +125,7 @@ namespace dbp

    private:
        DECL_LINK( OnFieldSelected, weld::TreeView&, void );
        DECL_LINK( OnTableDoubleClicked, weld::TreeView&, void );
        DECL_LINK( OnTableDoubleClicked, weld::TreeView&, bool );

        // OWizardPage overridables
        virtual void        initializePage() override;
diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
index 6f81c82..d5c568b 100644
--- a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
+++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
@@ -157,9 +157,10 @@ IMPL_LINK_NOARG(XMLFilterSettingsDialog, SelectionChangedHdl_Impl, weld::TreeVie
    updateStates();
}

IMPL_LINK_NOARG(XMLFilterSettingsDialog, DoubleClickHdl_Impl, weld::TreeView&, void)
IMPL_LINK_NOARG(XMLFilterSettingsDialog, DoubleClickHdl_Impl, weld::TreeView&, bool)
{
    onEdit();
    return true;
}

void XMLFilterSettingsDialog::UpdateWindow()
diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx
index 2db86ee..f6a876b 100644
--- a/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx
+++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx
@@ -40,7 +40,7 @@ public:

    DECL_LINK(ClickHdl_Impl, weld::Button&, void );
    DECL_LINK(SelectionChangedHdl_Impl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl_Impl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl_Impl, weld::TreeView&, bool);

    void    UpdateWindow();

diff --git a/formula/source/ui/dlg/funcpage.cxx b/formula/source/ui/dlg/funcpage.cxx
index 92cb584..92035c7 100644
--- a/formula/source/ui/dlg/funcpage.cxx
+++ b/formula/source/ui/dlg/funcpage.cxx
@@ -203,9 +203,10 @@ IMPL_LINK_NOARG(FuncPage, SelTreeViewHdl, weld::TreeView&, void)
    aSelectionLink.Call(*this);
}

IMPL_LINK_NOARG(FuncPage, DblClkHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(FuncPage, DblClkHdl, weld::TreeView&, bool)
{
    aDoubleClickLink.Call(*this);
    return true;
}

IMPL_LINK_NOARG(FuncPage, ModifyHdl, weld::Entry&, void)
diff --git a/formula/source/ui/dlg/funcpage.hxx b/formula/source/ui/dlg/funcpage.hxx
index 41dfae6..95b9e13 100644
--- a/formula/source/ui/dlg/funcpage.hxx
+++ b/formula/source/ui/dlg/funcpage.hxx
@@ -53,7 +53,7 @@ private:

    DECL_LINK(SelComboBoxHdl, weld::ComboBox&, void);
    DECL_LINK(SelTreeViewHdl, weld::TreeView&, void);
    DECL_LINK(DblClkHdl, weld::TreeView&, void);
    DECL_LINK(DblClkHdl, weld::TreeView&, bool);
    DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
    DECL_LINK(ModifyHdl, weld::Entry&, void);

diff --git a/include/sfx2/new.hxx b/include/sfx2/new.hxx
index 9792fc5..54e6652 100644
--- a/include/sfx2/new.hxx
+++ b/include/sfx2/new.hxx
@@ -85,7 +85,7 @@ private:

    DECL_LINK(RegionSelect, weld::TreeView&, void);
    DECL_LINK(TemplateSelect, weld::TreeView&, void);
    DECL_LINK(DoubleClick, weld::TreeView&, void);
    DECL_LINK(DoubleClick, weld::TreeView&, bool);
    DECL_LINK(Expand, weld::Expander&, void);
    sal_uInt16  GetSelectedTemplatePos() const;

diff --git a/include/sfx2/newstyle.hxx b/include/sfx2/newstyle.hxx
index 8e74898..72569f4 100644
--- a/include/sfx2/newstyle.hxx
+++ b/include/sfx2/newstyle.hxx
@@ -36,7 +36,7 @@ private:

    std::unique_ptr<weld::MessageDialog> m_xQueryOverwriteBox;

    DECL_DLLPRIVATE_LINK(OKHdl, weld::TreeView&, void);
    DECL_DLLPRIVATE_LINK(OKHdl, weld::TreeView&, bool);
    DECL_DLLPRIVATE_LINK(OKClickHdl, weld::Button&, void);
    DECL_DLLPRIVATE_LINK(ModifyHdl, weld::ComboBox&, void);

diff --git a/include/svx/ClassificationDialog.hxx b/include/svx/ClassificationDialog.hxx
index edc21e1..b9ca3f3 100644
--- a/include/svx/ClassificationDialog.hxx
+++ b/include/svx/ClassificationDialog.hxx
@@ -56,10 +56,10 @@ private:
    DECL_LINK(ButtonClicked, weld::Button&, void);
    DECL_LINK(SelectToolboxHdl, weld::ToggleButton&, void);
    DECL_LINK(SelectClassificationHdl, weld::ComboBox&, void);
    DECL_LINK(SelectMarkingHdl, weld::TreeView&, void);
    DECL_LINK(SelectIPPartNumbersHdl, weld::TreeView&, void);
    DECL_LINK(SelectMarkingHdl, weld::TreeView&, bool);
    DECL_LINK(SelectIPPartNumbersHdl, weld::TreeView&, bool);
    DECL_LINK(SelectRecentlyUsedHdl, weld::ComboBox&, void);
    DECL_LINK(SelectIPPartHdl, weld::TreeView&, void);
    DECL_LINK(SelectIPPartHdl, weld::TreeView&, bool);
    DECL_LINK(EditWindowModifiedHdl, LinkParamNone*, void);
    DECL_STATIC_LINK(ClassificationDialog, ExpandedHdl, weld::Expander&, void);
    DECL_STATIC_LINK(ClassificationDialog, KeyInput, const KeyEvent&, bool);
diff --git a/include/svx/txencbox.hxx b/include/svx/txencbox.hxx
index b341994d..2ed7ffa 100644
--- a/include/svx/txencbox.hxx
+++ b/include/svx/txencbox.hxx
@@ -197,7 +197,7 @@ public:
    rtl_TextEncoding    GetSelectTextEncoding() const;

    void connect_changed(const Link<weld::TreeView&, void>& rLink) { m_xControl->connect_changed(rLink); }
    void connect_row_activated(const Link<weld::TreeView&, void>& rLink) { m_xControl->connect_row_activated(rLink); }
    void connect_row_activated(const Link<weld::TreeView&, bool>& rLink) { m_xControl->connect_row_activated(rLink); }
    void grab_focus() { m_xControl->grab_focus(); }
    void show() { m_xControl->show(); }
    void hide() { m_xControl->hide(); }
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index 327e376..197eaac 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -642,7 +642,7 @@ private:

protected:
    Link<TreeView&, void> m_aChangeHdl;
    Link<TreeView&, void> m_aRowActivatedHdl;
    Link<TreeView&, bool> m_aRowActivatedHdl;
    Link<int, void> m_aColumnClickedHdl;
    Link<const std::pair<int, int>&, void> m_aRadioToggleHdl;
    Link<const TreeIter&, bool> m_aEditingStartedHdl;
@@ -657,7 +657,7 @@ protected:
    std::vector<int> m_aRadioIndexes;

    void signal_changed() { m_aChangeHdl.Call(*this); }
    void signal_row_activated() { m_aRowActivatedHdl.Call(*this); }
    bool signal_row_activated() { return m_aRowActivatedHdl.Call(*this); }
    void signal_column_clicked(int nColumn) { m_aColumnClickedHdl.Call(nColumn); }
    bool signal_expanding(const TreeIter& rIter)
    {
@@ -725,7 +725,14 @@ public:
    }

    void connect_changed(const Link<TreeView&, void>& rLink) { m_aChangeHdl = rLink; }
    void connect_row_activated(const Link<TreeView&, void>& rLink) { m_aRowActivatedHdl = rLink; }

    /* A row is "activated" when the user double clicks a treeview row. It may
       also be emitted when a row is selected and Space or Enter is pressed.

       a return of "true" means the activation has been handled, a "false" propogates
       the activation to the default handler which expands/collapses the row, if possible.
    */
    void connect_row_activated(const Link<TreeView&, bool>& rLink) { m_aRowActivatedHdl = rLink; }

    // Argument is a pair of row, col describing the node in non-tree mode.
    // If in tree mode, then retrieve the toggled node with get_cursor
@@ -1400,7 +1407,7 @@ public:
    {
        return m_xEntry->get_selection_bounds(rStartPos, rEndPos);
    }
    void connect_row_activated(const Link<TreeView&, void>& rLink)
    void connect_row_activated(const Link<TreeView&, bool>& rLink)
    {
        m_xTreeView->connect_row_activated(rLink);
    }
diff --git a/sc/source/ui/condformat/condformatmgr.cxx b/sc/source/ui/condformat/condformatmgr.cxx
index 1ac76ac..a8206a3 100644
--- a/sc/source/ui/condformat/condformatmgr.cxx
+++ b/sc/source/ui/condformat/condformatmgr.cxx
@@ -136,17 +136,17 @@ IMPL_LINK_NOARG(ScCondFormatManagerDlg, EditBtnClickHdl, weld::Button&, void)
    EditBtnHdl(*m_xTreeView);
}

IMPL_LINK_NOARG(ScCondFormatManagerDlg, EditBtnHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(ScCondFormatManagerDlg, EditBtnHdl, weld::TreeView&, bool)
{
    ScConditionalFormat* pFormat = m_xCtrlManager->GetSelection();

    if (!pFormat)
        return;
        return true;

    m_bModified = true;
    m_xDialog->response( DLG_RET_EDIT );

    return;
    return true;
}

IMPL_LINK_NOARG(ScCondFormatManagerDlg, AddBtnHdl, weld::Button&, void)
diff --git a/sc/source/ui/dbgui/PivotLayoutTreeList.cxx b/sc/source/ui/dbgui/PivotLayoutTreeList.cxx
index 6882a19..e9a16a3 100644
--- a/sc/source/ui/dbgui/PivotLayoutTreeList.cxx
+++ b/sc/source/ui/dbgui/PivotLayoutTreeList.cxx
@@ -34,17 +34,17 @@ void ScPivotLayoutTreeList::Setup(ScPivotLayoutDialog* pParent, SvPivotTreeListT
    meType = eType;
}

IMPL_LINK_NOARG(ScPivotLayoutTreeList, DoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(ScPivotLayoutTreeList, DoubleClickHdl, weld::TreeView&, bool)
{
    int nEntry = mxControl->get_cursor_index();
    if (nEntry == -1)
        return;
        return true;

    ScItemValue* pCurrentItemValue = reinterpret_cast<ScItemValue*>(mxControl->get_id(nEntry).toInt64());
    ScPivotFuncData& rCurrentFunctionData = pCurrentItemValue->maFunctionData;

    if (mpParent->IsDataElement(rCurrentFunctionData.mnCol))
        return;
        return true;

    SCCOL nCurrentColumn = rCurrentFunctionData.mnCol;
    ScDPLabelData& rCurrentLabelData = mpParent->GetLabelData(nCurrentColumn);
@@ -62,6 +62,8 @@ IMPL_LINK_NOARG(ScPivotLayoutTreeList, DoubleClickHdl, weld::TreeView&, void)
        pDialog->FillLabelData(rCurrentLabelData);
        rCurrentFunctionData.mnFuncMask = pDialog->GetFuncMask();
    }

    return true;
}

void ScPivotLayoutTreeList::FillFields(ScPivotFieldVector& rFieldVector)
diff --git a/sc/source/ui/dbgui/PivotLayoutTreeListData.cxx b/sc/source/ui/dbgui/PivotLayoutTreeListData.cxx
index dec6a89..cde29f0 100644
--- a/sc/source/ui/dbgui/PivotLayoutTreeListData.cxx
+++ b/sc/source/ui/dbgui/PivotLayoutTreeListData.cxx
@@ -71,11 +71,11 @@ ScPivotLayoutTreeListData::ScPivotLayoutTreeListData(std::unique_ptr<weld::TreeV
ScPivotLayoutTreeListData::~ScPivotLayoutTreeListData()
{}

IMPL_LINK_NOARG(ScPivotLayoutTreeListData, DoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(ScPivotLayoutTreeListData, DoubleClickHdl, weld::TreeView&, bool)
{
    int nEntry = mxControl->get_cursor_index();
    if (nEntry == -1)
        return;
        return true;

    ScItemValue* pCurrentItemValue = reinterpret_cast<ScItemValue*>(mxControl->get_id(nEntry).toInt64());
    ScPivotFuncData& rCurrentFunctionData = pCurrentItemValue->maFunctionData;
@@ -106,6 +106,8 @@ IMPL_LINK_NOARG(ScPivotLayoutTreeListData, DoubleClickHdl, weld::TreeView&, void

        mxControl->set_text(nEntry, sDataItemName);
    }

    return true;
}

void ScPivotLayoutTreeListData::FillDataField(ScPivotFieldVector& rDataFields)
diff --git a/sc/source/ui/dbgui/pvfundlg.cxx b/sc/source/ui/dbgui/pvfundlg.cxx
index a082dbfd..f9df9a2 100644
--- a/sc/source/ui/dbgui/pvfundlg.cxx
+++ b/sc/source/ui/dbgui/pvfundlg.cxx
@@ -438,9 +438,10 @@ IMPL_LINK( ScDPFunctionDlg, SelectHdl, weld::ComboBox&, rLBox, void )
    }
}

IMPL_LINK_NOARG(ScDPFunctionDlg, DblClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(ScDPFunctionDlg, DblClickHdl, weld::TreeView&, bool)
{
    m_xDialog->response(RET_OK);
    return true;
}

ScDPSubtotalDlg::ScDPSubtotalDlg(weld::Widget* pParent, ScDPObject& rDPObj,
@@ -529,9 +530,10 @@ IMPL_LINK(ScDPSubtotalDlg, RadioClickHdl, weld::Button&, rBtn, void)
    mxLbFunc->set_sensitive(&rBtn == mxRbUser.get());
}

IMPL_LINK_NOARG(ScDPSubtotalDlg, DblClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(ScDPSubtotalDlg, DblClickHdl, weld::TreeView&, bool)
{
    m_xDialog->response(RET_OK);
    return true;
}

IMPL_LINK(ScDPSubtotalDlg, ClickHdl, weld::Button&, rBtn, void)
@@ -905,9 +907,10 @@ OUString ScDPShowDetailDlg::GetDimensionName() const
    return mrDPObj.GetDimName(nDim, bIsDataLayout);
}

IMPL_LINK_NOARG(ScDPShowDetailDlg, DblClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(ScDPShowDetailDlg, DblClickHdl, weld::TreeView&, bool)
{
    m_xDialog->response(RET_OK);
    return true;
}

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/dbgui/scuiimoptdlg.cxx b/sc/source/ui/dbgui/scuiimoptdlg.cxx
index 0a0d8b2..03fce13 100644
--- a/sc/source/ui/dbgui/scuiimoptdlg.cxx
+++ b/sc/source/ui/dbgui/scuiimoptdlg.cxx
@@ -317,9 +317,10 @@ IMPL_LINK_NOARG(ScImportOptionsDlg, FixedWidthHdl, weld::ToggleButton&, void)
    m_xCbQuoteAll->set_sensitive( bEnable );
}

IMPL_LINK_NOARG(ScImportOptionsDlg, DoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(ScImportOptionsDlg, DoubleClickHdl, weld::TreeView&, bool)
{
    m_xDialog->response(RET_OK);
    return true;
}

void ScImportOptionsDlg::SaveImportOptions() const
diff --git a/sc/source/ui/inc/PivotLayoutTreeList.hxx b/sc/source/ui/inc/PivotLayoutTreeList.hxx
index 02120e7..42f090f 100644
--- a/sc/source/ui/inc/PivotLayoutTreeList.hxx
+++ b/sc/source/ui/inc/PivotLayoutTreeList.hxx
@@ -21,7 +21,7 @@ private:
    std::vector<std::unique_ptr<ScItemValue> > maItemValues;

    DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, bool);

public:
    ScPivotLayoutTreeList(std::unique_ptr<weld::TreeView> xControl);
diff --git a/sc/source/ui/inc/PivotLayoutTreeListData.hxx b/sc/source/ui/inc/PivotLayoutTreeListData.hxx
index c9f9dce4..c5a3fb07 100644
--- a/sc/source/ui/inc/PivotLayoutTreeListData.hxx
+++ b/sc/source/ui/inc/PivotLayoutTreeListData.hxx
@@ -20,7 +20,7 @@ class ScPivotLayoutTreeListData final : public ScPivotLayoutTreeListBase
{
private:
    DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, bool);

public:
    ScPivotLayoutTreeListData(std::unique_ptr<weld::TreeView> xControl);
diff --git a/sc/source/ui/inc/condformatmgr.hxx b/sc/source/ui/inc/condformatmgr.hxx
index 94bbf34..02e904b 100644
--- a/sc/source/ui/inc/condformatmgr.hxx
+++ b/sc/source/ui/inc/condformatmgr.hxx
@@ -63,7 +63,7 @@ private:
    DECL_LINK(RemoveBtnHdl, weld::Button&, void);
    DECL_LINK(EditBtnClickHdl, weld::Button&, void);
    DECL_LINK(AddBtnHdl, weld::Button&, void);
    DECL_LINK(EditBtnHdl, weld::TreeView&, void);
    DECL_LINK(EditBtnHdl, weld::TreeView&, bool);
};

#endif
diff --git a/sc/source/ui/inc/lbseldlg.hxx b/sc/source/ui/inc/lbseldlg.hxx
index fc78c8a..62bec0d 100644
--- a/sc/source/ui/inc/lbseldlg.hxx
+++ b/sc/source/ui/inc/lbseldlg.hxx
@@ -27,7 +27,7 @@ class ScSelEntryDlg : public weld::GenericDialogController
private:
    std::unique_ptr<weld::TreeView> m_xLb;

    DECL_LINK(DblClkHdl, weld::TreeView&, void);
    DECL_LINK(DblClkHdl, weld::TreeView&, bool);

public:
    ScSelEntryDlg(weld::Window* pParent, const std::vector<OUString> &rEntryList);
diff --git a/sc/source/ui/inc/pvfundlg.hxx b/sc/source/ui/inc/pvfundlg.hxx
index 19b1d49..47891ec 100644
--- a/sc/source/ui/inc/pvfundlg.hxx
+++ b/sc/source/ui/inc/pvfundlg.hxx
@@ -41,7 +41,7 @@ public:

    void set_sensitive(bool sensitive) { m_xControl->set_sensitive(sensitive); }
    void set_selection_mode(SelectionMode eMode) { m_xControl->set_selection_mode(eMode); }
    void connect_row_activated(const Link<weld::TreeView&, void>& rLink) { m_xControl->connect_row_activated(rLink); }
    void connect_row_activated(const Link<weld::TreeView&, bool>& rLink) { m_xControl->connect_row_activated(rLink); }
    int get_height_rows(int nRows) const { return m_xControl->get_height_rows(nRows); }
    void set_size_request(int nWidth, int nHeight) { m_xControl->set_size_request(nWidth, nHeight); }

@@ -70,7 +70,7 @@ private:
    sal_Int32 FindBaseItemPos( const OUString& rEntry, sal_Int32 nStartPos ) const;

    DECL_LINK(SelectHdl, weld::ComboBox&, void);
    DECL_LINK(DblClickHdl, weld::TreeView&, void);
    DECL_LINK(DblClickHdl, weld::TreeView&, bool);

private:
    std::unique_ptr<ScDPFunctionListBox> mxLbFunc;
@@ -103,7 +103,7 @@ public:
private:
    void                Init( const ScDPLabelData& rLabelData, const ScPivotFuncData& rFuncData );

    DECL_LINK( DblClickHdl, weld::TreeView&, void );
    DECL_LINK( DblClickHdl, weld::TreeView&, bool );
    DECL_LINK( RadioClickHdl, weld::Button&, void );
    DECL_LINK( ClickHdl, weld::Button&, void );

@@ -191,7 +191,7 @@ public:
    OUString GetDimensionName() const;

private:
    DECL_LINK(DblClickHdl, weld::TreeView&, void);
    DECL_LINK(DblClickHdl, weld::TreeView&, bool);

private:
    typedef std::unordered_map<OUString, long> DimNameIndexMap;
diff --git a/sc/source/ui/inc/scuiautofmt.hxx b/sc/source/ui/inc/scuiautofmt.hxx
index 6ddaf40..3b05ec1 100644
--- a/sc/source/ui/inc/scuiautofmt.hxx
+++ b/sc/source/ui/inc/scuiautofmt.hxx
@@ -70,7 +70,7 @@ private:
    DECL_LINK( RemoveHdl, weld::Button&, void );
    DECL_LINK( SelFmtHdl, weld::TreeView&, void );
    DECL_LINK( CloseHdl, weld::Button&, void );
    DECL_LINK( DblClkHdl, weld::TreeView&, void );
    DECL_LINK( DblClkHdl, weld::TreeView&, bool );
    DECL_LINK( RenameHdl, weld::Button&, void );

};
diff --git a/sc/source/ui/inc/scuiimoptdlg.hxx b/sc/source/ui/inc/scuiimoptdlg.hxx
index fff6511..b100410 100644
--- a/sc/source/ui/inc/scuiimoptdlg.hxx
+++ b/sc/source/ui/inc/scuiimoptdlg.hxx
@@ -70,7 +70,7 @@ private:
    void FillFromDbTextEncodingMap(bool bExcludeImportSubsets, sal_uInt32 nExcludeInfoFlags = 0);

    DECL_LINK(FixedWidthHdl, weld::ToggleButton&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, bool);
};

#endif
diff --git a/sc/source/ui/inc/shtabdlg.hxx b/sc/source/ui/inc/shtabdlg.hxx
index 37d69ba..0143ad7 100644
--- a/sc/source/ui/inc/shtabdlg.hxx
+++ b/sc/source/ui/inc/shtabdlg.hxx
@@ -28,7 +28,7 @@ private:
    std::unique_ptr<weld::Frame> m_xFrame;
    std::unique_ptr<weld::TreeView> m_xLb;

    DECL_LINK( DblClkHdl, weld::TreeView&, void );
    DECL_LINK( DblClkHdl, weld::TreeView&, bool );

public:
    ScShowTabDlg(weld::Window* pParent);
diff --git a/sc/source/ui/inc/solveroptions.hxx b/sc/source/ui/inc/solveroptions.hxx
index 18bc0ab..41875a0 100644
--- a/sc/source/ui/inc/solveroptions.hxx
+++ b/sc/source/ui/inc/solveroptions.hxx
@@ -67,7 +67,7 @@ class ScSolverOptionsDialog : public weld::GenericDialogController

    DECL_LINK( EngineSelectHdl, weld::ComboBox&, void );
    DECL_LINK( SettingsSelHdl, weld::TreeView&, void );
    DECL_LINK( SettingsDoubleClickHdl, weld::TreeView&, void );
    DECL_LINK( SettingsDoubleClickHdl, weld::TreeView&, bool );
    DECL_LINK( ButtonHdl, weld::Button&, void );

    void    ReadFromComponent();
diff --git a/sc/source/ui/miscdlgs/lbseldlg.cxx b/sc/source/ui/miscdlgs/lbseldlg.cxx
index 67adcb1..4c0b592 100644
--- a/sc/source/ui/miscdlgs/lbseldlg.cxx
+++ b/sc/source/ui/miscdlgs/lbseldlg.cxx
@@ -45,9 +45,10 @@ OUString ScSelEntryDlg::GetSelectedEntry() const
    return m_xLb->get_selected_text();
}

IMPL_LINK_NOARG(ScSelEntryDlg, DblClkHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(ScSelEntryDlg, DblClkHdl, weld::TreeView&, bool)
{
    m_xDialog->response(RET_OK);
    return true;
}

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/miscdlgs/scuiautofmt.cxx b/sc/source/ui/miscdlgs/scuiautofmt.cxx
index f933fc0..82d80da 100644
--- a/sc/source/ui/miscdlgs/scuiautofmt.cxx
+++ b/sc/source/ui/miscdlgs/scuiautofmt.cxx
@@ -141,12 +141,14 @@ IMPL_LINK(ScAutoFormatDlg, CloseHdl, weld::Button&, rBtn, void)
    }
}

IMPL_LINK_NOARG(ScAutoFormatDlg, DblClkHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(ScAutoFormatDlg, DblClkHdl, weld::TreeView&, bool)
{
    if ( bCoreDataChanged )
        ScGlobal::GetOrCreateAutoFormat()->Save();

    m_xDialog->response( RET_OK );

    return true;
}

IMPL_LINK(ScAutoFormatDlg, CheckHdl, weld::ToggleButton&, rBtn, void)
diff --git a/sc/source/ui/miscdlgs/shtabdlg.cxx b/sc/source/ui/miscdlgs/shtabdlg.cxx
index ee21149..71e4fa0 100644
--- a/sc/source/ui/miscdlgs/shtabdlg.cxx
+++ b/sc/source/ui/miscdlgs/shtabdlg.cxx
@@ -63,9 +63,10 @@ OUString ScShowTabDlg::GetEntry(sal_Int32 nIndex) const
    return m_xLb->get_text(nIndex);
}

IMPL_LINK_NOARG(ScShowTabDlg, DblClkHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(ScShowTabDlg, DblClkHdl, weld::TreeView&, bool)
{
    m_xDialog->response(RET_OK);
    return true;
}

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/miscdlgs/solveroptions.cxx b/sc/source/ui/miscdlgs/solveroptions.cxx
index 33cfc82..40efcef 100644
--- a/sc/source/ui/miscdlgs/solveroptions.cxx
+++ b/sc/source/ui/miscdlgs/solveroptions.cxx
@@ -278,9 +278,10 @@ IMPL_LINK( ScSolverOptionsDialog, ButtonHdl, weld::Button&, rBtn, void )
        EditOption();
}

IMPL_LINK_NOARG(ScSolverOptionsDialog, SettingsDoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(ScSolverOptionsDialog, SettingsDoubleClickHdl, weld::TreeView&, bool)
{
    EditOption();
    return true;
}

IMPL_LINK_NOARG(ScSolverOptionsDialog, EngineSelectHdl, weld::ComboBox&, void)
diff --git a/sfx2/source/dialog/newstyle.cxx b/sfx2/source/dialog/newstyle.cxx
index 088dbe6..ed7a20f 100644
--- a/sfx2/source/dialog/newstyle.cxx
+++ b/sfx2/source/dialog/newstyle.cxx
@@ -49,9 +49,10 @@ IMPL_LINK_NOARG(SfxNewStyleDlg, OKClickHdl, weld::Button&, void)
        m_xDialog->response(RET_OK);
}

IMPL_LINK_NOARG(SfxNewStyleDlg, OKHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(SfxNewStyleDlg, OKHdl, weld::TreeView&, bool)
{
    OKClickHdl(*m_xOKBtn);
    return true;
}

IMPL_LINK(SfxNewStyleDlg, ModifyHdl, weld::ComboBox&, rBox, void)
diff --git a/sfx2/source/dialog/versdlg.cxx b/sfx2/source/dialog/versdlg.cxx
index 6dfc432..2aece77 100644
--- a/sfx2/source/dialog/versdlg.cxx
+++ b/sfx2/source/dialog/versdlg.cxx
@@ -289,9 +289,10 @@ void SfxVersionDialog::Open_Impl()
    m_xDialog->response(RET_OK);
}

IMPL_LINK_NOARG(SfxVersionDialog, DClickHdl_Impl, weld::TreeView&, void)
IMPL_LINK_NOARG(SfxVersionDialog, DClickHdl_Impl, weld::TreeView&, bool)
{
    Open_Impl();
    return true;
}

IMPL_LINK_NOARG(SfxVersionDialog, SelectHdl_Impl, weld::TreeView&, void)
diff --git a/sfx2/source/doc/new.cxx b/sfx2/source/doc/new.cxx
index 32abbf8..ecebd52 100644
--- a/sfx2/source/doc/new.cxx
+++ b/sfx2/source/doc/new.cxx
@@ -206,11 +206,12 @@ IMPL_LINK_NOARG(SfxNewFileDialog, TemplateSelect, weld::TreeView&, void)
    m_aPrevIdle.Start();
}

IMPL_LINK_NOARG( SfxNewFileDialog, DoubleClick, weld::TreeView&, void )
IMPL_LINK_NOARG( SfxNewFileDialog, DoubleClick, weld::TreeView&, bool )
{
    // Still loading
    if (!m_xDocShell.Is() || !m_xDocShell->GetProgress())
        m_xDialog->response(RET_OK);
    return true;
}

sal_uInt16  SfxNewFileDialog::GetSelectedTemplatePos() const
diff --git a/sfx2/source/inc/versdlg.hxx b/sfx2/source/inc/versdlg.hxx
index 8f93778..d486692 100644
--- a/sfx2/source/inc/versdlg.hxx
+++ b/sfx2/source/inc/versdlg.hxx
@@ -41,7 +41,7 @@ class SfxVersionDialog : public SfxDialogController
    std::unique_ptr<weld::Button> m_xCmisButton;
    std::unique_ptr<weld::TreeView> m_xVersionBox;

    DECL_LINK(DClickHdl_Impl, weld::TreeView&, void);
    DECL_LINK(DClickHdl_Impl, weld::TreeView&, bool);
    DECL_LINK(SelectHdl_Impl, weld::TreeView&, void);
    DECL_LINK(ButtonHdl_Impl, weld::Button&, void );
    void Init_Impl();
diff --git a/svx/source/dialog/ClassificationDialog.cxx b/svx/source/dialog/ClassificationDialog.cxx
index 895688d..c81fa7a 100644
--- a/svx/source/dialog/ClassificationDialog.cxx
+++ b/svx/source/dialog/ClassificationDialog.cxx
@@ -615,7 +615,7 @@ IMPL_LINK(ClassificationDialog, SelectClassificationHdl, weld::ComboBox&, rBox, 
    m_nCurrentSelectedCategory = nSelected;
}

IMPL_LINK(ClassificationDialog, SelectMarkingHdl, weld::TreeView&, rBox, void)
IMPL_LINK(ClassificationDialog, SelectMarkingHdl, weld::TreeView&, rBox, bool)
{
    sal_Int32 nSelected = rBox.get_selected_index();
    if (nSelected >= 0)
@@ -623,9 +623,10 @@ IMPL_LINK(ClassificationDialog, SelectMarkingHdl, weld::TreeView&, rBox, void)
        const OUString aString = maHelper.GetMarkings()[nSelected];
        insertField(ClassificationType::MARKING, aString, aString);
    }
    return true;
}

IMPL_LINK(ClassificationDialog, SelectIPPartNumbersHdl, weld::TreeView&, rBox, void)
IMPL_LINK(ClassificationDialog, SelectIPPartNumbersHdl, weld::TreeView&, rBox, bool)
{
    sal_Int32 nSelected = rBox.get_selected_index();
    if (nSelected >= 0)
@@ -634,6 +635,7 @@ IMPL_LINK(ClassificationDialog, SelectIPPartNumbersHdl, weld::TreeView&, rBox, v
        m_xIntellectualPropertyPartEdit->replace_selection(sString);
        m_xIntellectualPropertyPartEdit->grab_focus();
    }
    return true;
}

IMPL_LINK(ClassificationDialog, SelectRecentlyUsedHdl, weld::ComboBox&, rBox, void)
@@ -646,7 +648,7 @@ IMPL_LINK(ClassificationDialog, SelectRecentlyUsedHdl, weld::ComboBox&, rBox, vo
    }
}

IMPL_LINK(ClassificationDialog, SelectIPPartHdl, weld::TreeView&, rBox, void)
IMPL_LINK(ClassificationDialog, SelectIPPartHdl, weld::TreeView&, rBox, bool)
{
    const sal_Int32 nSelected = rBox.get_selected_index();
    if (nSelected >= 0)
@@ -655,6 +657,7 @@ IMPL_LINK(ClassificationDialog, SelectIPPartHdl, weld::TreeView&, rBox, void)
        m_xIntellectualPropertyPartEdit->replace_selection(sString);
        m_xIntellectualPropertyPartEdit->grab_focus();
    }
    return true;
}

IMPL_LINK(ClassificationDialog, ButtonClicked, weld::Button&, rButton, void)
diff --git a/sw/source/ui/chrdlg/swuiccoll.cxx b/sw/source/ui/chrdlg/swuiccoll.cxx
index 0a32569..b794755 100644
--- a/sw/source/ui/chrdlg/swuiccoll.cxx
+++ b/sw/source/ui/chrdlg/swuiccoll.cxx
@@ -188,9 +188,10 @@ IMPL_LINK(SwCondCollPage, AssignRemoveClickHdl, weld::Button&, rBtn, void)
    AssignRemove(&rBtn);
}

IMPL_LINK(SwCondCollPage, AssignRemoveTreeListBoxHdl, weld::TreeView&, rBtn, void)
IMPL_LINK(SwCondCollPage, AssignRemoveTreeListBoxHdl, weld::TreeView&, rBtn, bool)
{
    AssignRemove(&rBtn);
    return true;
}

void SwCondCollPage::AssignRemove(const weld::Widget* pBtn)
diff --git a/sw/source/ui/dbui/dbinsdlg.cxx b/sw/source/ui/dbui/dbinsdlg.cxx
index a78e7ac..3a130a7 100644
--- a/sw/source/ui/dbui/dbinsdlg.cxx
+++ b/sw/source/ui/dbui/dbinsdlg.cxx
@@ -605,7 +605,7 @@ IMPL_LINK( SwInsertDBColAutoPilot, TableToFromHdl, weld::Button&, rButton, void 
    }
}

IMPL_LINK(SwInsertDBColAutoPilot, DblClickHdl, weld::TreeView&, rBox, void)
IMPL_LINK(SwInsertDBColAutoPilot, DblClickHdl, weld::TreeView&, rBox, bool)
{
    weld::Button* pButton = nullptr;
    if( &rBox == m_xLbTextDbColumn.get() )
@@ -617,6 +617,8 @@ IMPL_LINK(SwInsertDBColAutoPilot, DblClickHdl, weld::TreeView&, rBox, void)

    if (pButton)
        TableToFromHdl(*pButton);

    return true;
}

IMPL_LINK_NOARG(SwInsertDBColAutoPilot, TableFormatHdl, weld::Button&, void)
diff --git a/sw/source/ui/dochdl/selglos.cxx b/sw/source/ui/dochdl/selglos.cxx
index 21f2269..534aa9b 100644
--- a/sw/source/ui/dochdl/selglos.cxx
+++ b/sw/source/ui/dochdl/selglos.cxx
@@ -34,9 +34,10 @@ SwSelGlossaryDlg::~SwSelGlossaryDlg()
{
}

IMPL_LINK_NOARG(SwSelGlossaryDlg, DoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(SwSelGlossaryDlg, DoubleClickHdl, weld::TreeView&, bool)
{
    m_xDialog->response(RET_OK);
    return true;
}

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/ui/fldui/DropDownFieldDialog.cxx b/sw/source/ui/fldui/DropDownFieldDialog.cxx
index e5a549b..b9cb3b8 100644
--- a/sw/source/ui/fldui/DropDownFieldDialog.cxx
+++ b/sw/source/ui/fldui/DropDownFieldDialog.cxx
@@ -42,7 +42,7 @@ sw::DropDownFieldDialog::DropDownFieldDialog(weld::Widget *pParent, SwWrtShell &
{
    m_xListItemsLB->set_size_request(m_xListItemsLB->get_approximate_digit_width() * 24,
                                     m_xListItemsLB->get_height_rows(12));
    Link<weld::TreeView&, void> aDoubleLk = LINK(this, DropDownFieldDialog, DoubleClickHdl);
    Link<weld::TreeView&, bool> aDoubleLk = LINK(this, DropDownFieldDialog, DoubleClickHdl);
    m_xListItemsLB->connect_row_activated( aDoubleLk );

    Link<weld::Button&, void> aEditButtonLk = LINK(this, DropDownFieldDialog, EditHdl);
@@ -131,12 +131,13 @@ IMPL_LINK_NOARG(sw::DropDownFieldDialog, NextHdl, weld::Button&, void)
    m_xDialog->response(RET_OK);
}

IMPL_LINK_NOARG(sw::DropDownFieldDialog, DoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(sw::DropDownFieldDialog, DoubleClickHdl, weld::TreeView&, bool)
{
    // tdf#114144, when next is available make double-click accept and go to next field
    if (m_xNextPB->get_visible() && m_xNextPB->get_sensitive())
        m_pPressedButton = m_xNextPB.get();
    m_xDialog->response(RET_OK);
    return true;
}

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/ui/fldui/fldfunc.cxx b/sw/source/ui/fldui/fldfunc.cxx
index 1298f5b..38ec5c9 100644
--- a/sw/source/ui/fldui/fldfunc.cxx
+++ b/sw/source/ui/fldui/fldfunc.cxx
@@ -390,10 +390,11 @@ IMPL_LINK_NOARG(SwFieldFuncPage, SelectHdl, weld::TreeView&, void)
        m_xNameED->set_text( m_xSelectionLB->get_selected_text() );
}

IMPL_LINK_NOARG(SwFieldFuncPage, InsertMacroHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(SwFieldFuncPage, InsertMacroHdl, weld::TreeView&, bool)
{
    SelectHdl(*m_xSelectionLB);
    InsertHdl(nullptr);
    return true;
}

IMPL_LINK(SwFieldFuncPage, ListModifyButtonHdl, weld::Button&, rControl, void)
diff --git a/sw/source/ui/fldui/fldfunc.hxx b/sw/source/ui/fldui/fldfunc.hxx
index 43632c0..364a71d 100644
--- a/sw/source/ui/fldui/fldfunc.hxx
+++ b/sw/source/ui/fldui/fldfunc.hxx
@@ -62,7 +62,7 @@ class SwFieldFuncPage : public SwFieldPage

    DECL_LINK( TypeHdl, weld::TreeView&, void );
    DECL_LINK( SelectHdl, weld::TreeView&, void );
    DECL_LINK( InsertMacroHdl, weld::TreeView&, void );
    DECL_LINK( InsertMacroHdl, weld::TreeView&, bool );
    DECL_LINK( ModifyHdl, weld::Entry&, void );
    DECL_LINK( ListModifyReturnActionHdl, weld::Entry&, bool );
    DECL_LINK( ListModifyButtonHdl, weld::Button&, void );
diff --git a/sw/source/ui/fldui/fldpage.cxx b/sw/source/ui/fldui/fldpage.cxx
index a55a97e..dfc997c 100644
--- a/sw/source/ui/fldui/fldpage.cxx
+++ b/sw/source/ui/fldui/fldpage.cxx
@@ -300,9 +300,10 @@ void SwFieldPage::RestorePos(weld::TreeView& rLst1)
}

// Insert new fields
IMPL_LINK( SwFieldPage, TreeViewInsertHdl, weld::TreeView&, rBox, void )
IMPL_LINK( SwFieldPage, TreeViewInsertHdl, weld::TreeView&, rBox, bool )
{
    InsertHdl(&rBox);
    return true;
}

void SwFieldPage::InsertHdl(weld::Widget* pBtn)
@@ -338,9 +339,10 @@ void SwFieldPage::EnableInsert(bool bEnable)
    m_bInsert = bEnable;
}

IMPL_LINK_NOARG(SwFieldPage, NumFormatHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(SwFieldPage, NumFormatHdl, weld::TreeView&, bool)
{
    InsertHdl(nullptr);
    return true;
}

void SwFieldPage::SetWrtShell( SwWrtShell* pShell )
diff --git a/sw/source/ui/fldui/fldpage.hxx b/sw/source/ui/fldui/fldpage.hxx
index 178465d..9c0cecf 100644
--- a/sw/source/ui/fldui/fldpage.hxx
+++ b/sw/source/ui/fldui/fldpage.hxx
@@ -51,8 +51,8 @@ protected:
    SwField*            GetCurField()               { return m_pCurField;}
    SwWrtShell*         GetWrtShell() { return m_pWrtShell;}

    DECL_LINK( TreeViewInsertHdl, weld::TreeView&, void );
    DECL_LINK( NumFormatHdl, weld::TreeView&, void );
    DECL_LINK( TreeViewInsertHdl, weld::TreeView&, bool );
    DECL_LINK( NumFormatHdl, weld::TreeView&, bool );
    void                InsertHdl(weld::Widget*);

    void                Init();
diff --git a/sw/source/ui/fldui/fldvar.cxx b/sw/source/ui/fldui/fldvar.cxx
index 2d97270..38a5b6a 100644
--- a/sw/source/ui/fldui/fldvar.cxx
+++ b/sw/source/ui/fldui/fldvar.cxx
@@ -531,7 +531,7 @@ void SwFieldVarPage::SubTypeHdl(const weld::TreeView* pBox)
    ModifyHdl(*m_xNameED);    // apply/insert/delete status update
}

IMPL_LINK(SwFieldVarPage, SubTypeInsertHdl, weld::TreeView&, rBox, void)
IMPL_LINK(SwFieldVarPage, SubTypeInsertHdl, weld::TreeView&, rBox, bool)
{
    if (!bInit)
    {
@@ -543,11 +543,12 @@ IMPL_LINK(SwFieldVarPage, SubTypeInsertHdl, weld::TreeView&, rBox, void)
            {
                m_xValueED->replace_selection(m_xSelectionLB->get_text(nSelPos));
                ModifyHdl(*m_xNameED);
                return;
                return true;
            }
        }
    }
    TreeViewInsertHdl(rBox);
    return true;
}

// renew types in SelectionBox
diff --git a/sw/source/ui/fldui/fldvar.hxx b/sw/source/ui/fldui/fldvar.hxx
index f6f0c57..b214e5a 100644
--- a/sw/source/ui/fldui/fldvar.hxx
+++ b/sw/source/ui/fldui/fldvar.hxx
@@ -59,7 +59,7 @@ class SwFieldVarPage : public SwFieldPage
    DECL_LINK( TBClickHdl, weld::Button&, void );
    DECL_LINK( ChapterHdl, weld::ComboBox&, void );
    DECL_LINK( SeparatorHdl, weld::Entry&, void );
    DECL_LINK( SubTypeInsertHdl, weld::TreeView&, void );
    DECL_LINK( SubTypeInsertHdl, weld::TreeView&, bool );
    void SubTypeHdl(const weld::TreeView*);

    void                UpdateSubType();
diff --git a/sw/source/ui/index/cnttab.cxx b/sw/source/ui/index/cnttab.cxx
index 3e35881..54823da 100644
--- a/sw/source/ui/index/cnttab.cxx
+++ b/sw/source/ui/index/cnttab.cxx
@@ -3511,7 +3511,7 @@ IMPL_LINK_NOARG(SwTOXStylesTabPage, StdHdl, weld::Button&, void)
    }
}

IMPL_LINK_NOARG(SwTOXStylesTabPage, DoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(SwTOXStylesTabPage, DoubleClickHdl, weld::TreeView&, bool)
{
    const OUString aTmpName(m_xParaLayLB->get_selected_text());
    SwWrtShell& rSh = static_cast<SwMultiTOXTabDialog*>(GetDialogController())->GetWrtShell();
@@ -3519,6 +3519,8 @@ IMPL_LINK_NOARG(SwTOXStylesTabPage, DoubleClickHdl, weld::TreeView&, void)
    if(m_xParaLayLB->get_selected_index() != -1 &&
       (m_xLevelLB->get_selected_index() == 0 || SwMultiTOXTabDialog::IsNoNum(rSh, aTmpName)))
        AssignHdl(*m_xAssignBT);

    return true;
}

// enable only when selected
diff --git a/sw/source/ui/misc/bookmark.cxx b/sw/source/ui/misc/bookmark.cxx
index 8fcd297..faf59a1 100644
--- a/sw/source/ui/misc/bookmark.cxx
+++ b/sw/source/ui/misc/bookmark.cxx
@@ -136,9 +136,10 @@ IMPL_LINK_NOARG(SwInsertBookmarkDlg, GotoHdl, weld::Button&, void)
    GotoSelectedBookmark();
}

IMPL_LINK_NOARG(SwInsertBookmarkDlg, DoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(SwInsertBookmarkDlg, DoubleClickHdl, weld::TreeView&, bool)
{
    GotoSelectedBookmark();
    return true;
}

IMPL_LINK_NOARG(SwInsertBookmarkDlg, SelectionChangedHdl, weld::TreeView&, void)
diff --git a/sw/source/ui/misc/glossary.cxx b/sw/source/ui/misc/glossary.cxx
index 8cc06b4..9585129 100644
--- a/sw/source/ui/misc/glossary.cxx
+++ b/sw/source/ui/misc/glossary.cxx
@@ -415,11 +415,12 @@ IMPL_LINK(SwGlossaryDlg, NameModify, weld::Entry&, rEdit, void)
    }
}

IMPL_LINK( SwGlossaryDlg, NameDoubleClick, weld::TreeView&, rBox, void )
IMPL_LINK( SwGlossaryDlg, NameDoubleClick, weld::TreeView&, rBox, bool )
{
    std::unique_ptr<weld::TreeIter> xEntry = rBox.make_iterator();
    if (rBox.get_selected(xEntry.get()) && rBox.get_iter_depth(*xEntry) && !m_bIsDocReadOnly)
        m_xDialog->response(RET_OK);
    return true;
}

IMPL_LINK_NOARG( SwGlossaryDlg, EnableHdl, weld::ToggleButton&, void )
diff --git a/sw/source/ui/misc/outline.cxx b/sw/source/ui/misc/outline.cxx
index 3eb0b9e..47af1e3 100644
--- a/sw/source/ui/misc/outline.cxx
+++ b/sw/source/ui/misc/outline.cxx
@@ -63,7 +63,7 @@ class SwNumNamesDlg : public weld::GenericDialogController

    DECL_LINK( ModifyHdl, weld::Entry&, void );
    DECL_LINK( SelectHdl, weld::TreeView&, void );
    DECL_LINK( DoubleClickHdl, weld::TreeView&, void );
    DECL_LINK( DoubleClickHdl, weld::TreeView&, bool );

public:
    explicit SwNumNamesDlg(weld::Window *pParent);
@@ -107,9 +107,10 @@ IMPL_LINK( SwNumNamesDlg, ModifyHdl, weld::Entry&, rBox, void )
}

// DoubleClickHdl
IMPL_LINK_NOARG(SwNumNamesDlg, DoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(SwNumNamesDlg, DoubleClickHdl, weld::TreeView&, bool)
{
    m_xDialog->response(RET_OK);
    return true;
}

SwNumNamesDlg::SwNumNamesDlg(weld::Window *pParent)
diff --git a/sw/source/uibase/inc/DropDownFieldDialog.hxx b/sw/source/uibase/inc/DropDownFieldDialog.hxx
index f1d36c3..59510d3 100644
--- a/sw/source/uibase/inc/DropDownFieldDialog.hxx
+++ b/sw/source/uibase/inc/DropDownFieldDialog.hxx
@@ -44,7 +44,7 @@ class DropDownFieldDialog : public weld::GenericDialogController
    DECL_LINK(PrevHdl, weld::Button&, void);
    DECL_LINK(NextHdl, weld::Button&, void);
    void    Apply();
    DECL_LINK(DoubleClickHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, bool);
public:
    DropDownFieldDialog(weld::Widget *pParent, SwWrtShell &rSh,
                        SwField* pField, bool bPrevButton, bool bNextButton);
diff --git a/sw/source/uibase/inc/bookmark.hxx b/sw/source/uibase/inc/bookmark.hxx
index f11bdc1..1a12678 100644
--- a/sw/source/uibase/inc/bookmark.hxx
+++ b/sw/source/uibase/inc/bookmark.hxx
@@ -50,7 +50,7 @@ public:
    void selected_foreach(const std::function<bool(weld::TreeIter&)>& func) { m_xControl->selected_foreach(func); }

    void connect_changed(const Link<weld::TreeView&, void>& rLink) { m_xControl->connect_changed(rLink); }
    void connect_row_activated(const Link<weld::TreeView&, void>& rLink) { m_xControl->connect_row_activated(rLink); }
    void connect_row_activated(const Link<weld::TreeView&, bool>& rLink) { m_xControl->connect_row_activated(rLink); }
    void connect_column_clicked(const Link<int, void>& rLink) { m_xControl->connect_column_clicked(rLink); }
    void make_sorted() { m_xControl->make_sorted(); }
    bool get_sort_order() const { return m_xControl->get_sort_order(); }
@@ -87,7 +87,7 @@ class SwInsertBookmarkDlg : public SfxDialogController
    DECL_LINK(RenameHdl, weld::Button&, void);
    DECL_LINK(GotoHdl, weld::Button&, void);
    DECL_LINK(SelectionChangedHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, bool);
    DECL_LINK(HeaderBarClick, int, void);
    DECL_LINK(ChangeHideHdl, weld::ToggleButton&, void);

diff --git a/sw/source/uibase/inc/dbinsdlg.hxx b/sw/source/uibase/inc/dbinsdlg.hxx
index df31a21..4815a44 100644
--- a/sw/source/uibase/inc/dbinsdlg.hxx
+++ b/sw/source/uibase/inc/dbinsdlg.hxx
@@ -130,7 +130,7 @@ class SwInsertDBColAutoPilot : public SfxDialogController, public utl::ConfigIte
    DECL_LINK( TableToFromHdl, weld::Button&, void );
    DECL_LINK( TVSelectHdl, weld::TreeView&, void );
    DECL_LINK( CBSelectHdl, weld::ComboBox&, void );
    DECL_LINK( DblClickHdl, weld::TreeView&, void );
    DECL_LINK( DblClickHdl, weld::TreeView&, bool );
    DECL_LINK( HeaderHdl, weld::Button&, void );

    bool SplitTextToColArr( const OUString& rText, DB_Columns& rColArr, bool bInsField );
diff --git a/sw/source/uibase/inc/dbtree.hxx b/sw/source/uibase/inc/dbtree.hxx
index 3e8be7c..e3c994d 100644
--- a/sw/source/uibase/inc/dbtree.hxx
+++ b/sw/source/uibase/inc/dbtree.hxx
@@ -54,7 +54,7 @@ public:
    void    AddDataSource(const OUString& rSource);

    void connect_changed(const Link<weld::TreeView&, void>& rLink) { m_xTreeView->connect_changed(rLink); }
    void connect_row_activated(const Link<weld::TreeView&, void>& rLink) { m_xTreeView->connect_row_activated(rLink); }
    void connect_row_activated(const Link<weld::TreeView&, bool>& rLink) { m_xTreeView->connect_row_activated(rLink); }
    std::unique_ptr<weld::TreeIter> make_iterator(const weld::TreeIter* pOrig = nullptr) const { return m_xTreeView->make_iterator(pOrig); }
    bool get_selected(weld::TreeIter* pIter) const { return m_xTreeView->get_selected(pIter); }
    bool iter_parent(weld::TreeIter& rIter) const { return m_xTreeView->iter_parent(rIter); }
diff --git a/sw/source/uibase/inc/glossary.hxx b/sw/source/uibase/inc/glossary.hxx
index 596ca18..7f0dab6 100644
--- a/sw/source/uibase/inc/glossary.hxx
+++ b/sw/source/uibase/inc/glossary.hxx
@@ -81,7 +81,7 @@ class SwGlossaryDlg : public SfxDialogController
    void ShowPreview();

    DECL_LINK( NameModify, weld::Entry&, void );
    DECL_LINK( NameDoubleClick, weld::TreeView&, void );
    DECL_LINK( NameDoubleClick, weld::TreeView&, bool );
    DECL_LINK( GrpSelect, weld::TreeView&, void );
    DECL_LINK( MenuHdl, const OString&, void );
    DECL_LINK( EnableHdl, weld::ToggleButton&, void );
diff --git a/sw/source/uibase/inc/numfmtlb.hxx b/sw/source/uibase/inc/numfmtlb.hxx
index 9a38706..f4f75e3 100644
--- a/sw/source/uibase/inc/numfmtlb.hxx
+++ b/sw/source/uibase/inc/numfmtlb.hxx
@@ -134,7 +134,7 @@ public:
    int             get_selected_index() const { return mxControl->get_selected_index(); }
    void            set_visible(bool bVisible) { mxControl->set_visible(bVisible); }
    void            select(int nPos) { mxControl->select(nPos); }
    void            connect_row_activated(const Link<weld::TreeView&, void>& rLink) { mxControl->connect_row_activated(rLink); }
    void            connect_row_activated(const Link<weld::TreeView&, bool>& rLink) { mxControl->connect_row_activated(rLink); }

    void            set_sensitive(bool bSensitive) { mxControl->set_sensitive(bSensitive); }
    void            connect_changed(const Link<weld::TreeView&, void>& rLink) { mxControl->connect_changed(rLink); }
diff --git a/sw/source/uibase/inc/selglos.hxx b/sw/source/uibase/inc/selglos.hxx
index 28a7821..b31f61a 100644
--- a/sw/source/uibase/inc/selglos.hxx
+++ b/sw/source/uibase/inc/selglos.hxx
@@ -26,7 +26,7 @@ class SwSelGlossaryDlg final : public weld::GenericDialogController
    std::unique_ptr<weld::Frame> m_xFrame;
    std::unique_ptr<weld::TreeView> m_xGlosBox;

    DECL_LINK(DoubleClickHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, bool);
public:
    SwSelGlossaryDlg(weld::Window * pParent, const OUString &rShortName);
    virtual ~SwSelGlossaryDlg() override;
diff --git a/sw/source/uibase/inc/swuiccoll.hxx b/sw/source/uibase/inc/swuiccoll.hxx
index 7e80935..4e0f5c2 100644
--- a/sw/source/uibase/inc/swuiccoll.hxx
+++ b/sw/source/uibase/inc/swuiccoll.hxx
@@ -46,7 +46,7 @@ class SwCondCollPage : public SfxTabPage
    virtual DeactivateRC   DeactivatePage(SfxItemSet *pSet) override;

    DECL_LINK(OnOffHdl, weld::ToggleButton&, void);
    DECL_LINK(AssignRemoveTreeListBoxHdl, weld::TreeView&, void);
    DECL_LINK(AssignRemoveTreeListBoxHdl, weld::TreeView&, bool);
    DECL_LINK(AssignRemoveClickHdl, weld::Button&, void);
    DECL_LINK(SelectTreeListBoxHdl, weld::TreeView&, void);
    DECL_LINK(SelectListBoxHdl, weld::ComboBox&, void);
diff --git a/sw/source/uibase/inc/swuicnttab.hxx b/sw/source/uibase/inc/swuicnttab.hxx
index 20eb82b..e27eeac 100644
--- a/sw/source/uibase/inc/swuicnttab.hxx
+++ b/sw/source/uibase/inc/swuicnttab.hxx
@@ -411,7 +411,7 @@ class SwTOXStylesTabPage : public SfxTabPage
    DECL_LINK(EditStyleHdl, weld::Button&, void);
    DECL_LINK(StdHdl, weld::Button&, void);
    DECL_LINK(EnableSelectHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, bool);
    DECL_LINK(AssignHdl, weld::Button&, void);
    void Modify();

diff --git a/sw/source/uibase/utlui/gloslst.cxx b/sw/source/uibase/utlui/gloslst.cxx
index c584981..58e4521b3 100644
--- a/sw/source/uibase/utlui/gloslst.cxx
+++ b/sw/source/uibase/utlui/gloslst.cxx
@@ -49,7 +49,7 @@ class SwGlossDecideDlg : public weld::GenericDialogController
    std::unique_ptr<weld::Button> m_xOk;
    std::unique_ptr<weld::TreeView> m_xListLB;

    DECL_LINK(DoubleClickHdl, weld::TreeView&, void);
    DECL_LINK(DoubleClickHdl, weld::TreeView&, bool);
    DECL_LINK(SelectHdl, weld::TreeView&, void);

public:
@@ -69,9 +69,10 @@ SwGlossDecideDlg::SwGlossDecideDlg(weld::Window* pParent)
    m_xListLB->connect_changed(LINK(this, SwGlossDecideDlg, SelectHdl));
}

IMPL_LINK_NOARG(SwGlossDecideDlg, DoubleClickHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(SwGlossDecideDlg, DoubleClickHdl, weld::TreeView&, bool)
{
    m_xDialog->response(RET_OK);
    return true;
}

IMPL_LINK_NOARG(SwGlossDecideDlg, SelectHdl, weld::TreeView&, void)
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 2d9193d..baabc1e 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -4402,8 +4402,7 @@ IMPL_LINK_NOARG(SalInstanceTreeView, DoubleClickHdl, SvTreeListBox*, bool)
{
    if (notify_events_disabled())
        return false;
    signal_row_activated();
    return false;
    return !signal_row_activated();
}

IMPL_LINK(SalInstanceTreeView, EndDragHdl, HeaderBar*, pHeaderBar, void)
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index fd8db46..848d367 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -7373,11 +7373,22 @@ private:
        pThis->launch_signal_changed();
    }

    void handle_row_activated()
    {
        if (signal_row_activated())
            return;
        GtkInstanceTreeIter aIter(nullptr);
        if (!get_cursor(&aIter))
            return;
        if (iter_has_child(aIter))
            get_row_expanded(aIter) ? collapse_row(aIter) : expand_row(aIter);
    }

    static void signalRowActivated(GtkTreeView*, GtkTreePath*, GtkTreeViewColumn*, gpointer widget)
    {
        GtkInstanceTreeView* pThis = static_cast<GtkInstanceTreeView*>(widget);
        SolarMutexGuard aGuard;
        pThis->signal_row_activated();
        pThis->handle_row_activated();
    }

    virtual bool signal_popup_menu(const CommandEvent& rCEvt) override
diff --git a/xmlsecurity/inc/certificatechooser.hxx b/xmlsecurity/inc/certificatechooser.hxx
index d84af0f..645c729 100644
--- a/xmlsecurity/inc/certificatechooser.hxx
+++ b/xmlsecurity/inc/certificatechooser.hxx
@@ -69,7 +69,7 @@ private:

    DECL_LINK(ViewButtonHdl, weld::Button&, void);
    DECL_LINK(CertificateHighlightHdl, weld::TreeView&, void);
    DECL_LINK(CertificateSelectHdl, weld::TreeView&, void);
    DECL_LINK(CertificateSelectHdl, weld::TreeView&, bool);

    void ImplShowCertificateDetails();
    void ImplInitialize();
diff --git a/xmlsecurity/inc/digitalsignaturesdialog.hxx b/xmlsecurity/inc/digitalsignaturesdialog.hxx
index 363dfdeb..59e699d 100644
--- a/xmlsecurity/inc/digitalsignaturesdialog.hxx
+++ b/xmlsecurity/inc/digitalsignaturesdialog.hxx
@@ -84,7 +84,7 @@ private:
    DECL_LINK(AddButtonHdl, weld::Button&, void);
    DECL_LINK(RemoveButtonHdl, weld::Button&, void);
    DECL_LINK(SignatureHighlightHdl, weld::TreeView&, void);
    DECL_LINK(SignatureSelectHdl, weld::TreeView&, void);
    DECL_LINK(SignatureSelectHdl, weld::TreeView&, bool);
    DECL_LINK(StartVerifySignatureHdl, LinkParamNone*, bool);
    DECL_LINK(OKButtonHdl, weld::Button&, void);
    DECL_LINK(CertMgrButtonHdl, weld::Button&, void);
diff --git a/xmlsecurity/source/dialogs/certificatechooser.cxx b/xmlsecurity/source/dialogs/certificatechooser.cxx
index 75467a6..4345bb2 100644
--- a/xmlsecurity/source/dialogs/certificatechooser.cxx
+++ b/xmlsecurity/source/dialogs/certificatechooser.cxx
@@ -303,9 +303,10 @@ IMPL_LINK_NOARG(CertificateChooser, CertificateHighlightHdl, weld::TreeView&, vo
    m_xDescriptionED->set_sensitive(bEnable);
}

IMPL_LINK_NOARG(CertificateChooser, CertificateSelectHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(CertificateChooser, CertificateSelectHdl, weld::TreeView&, bool)
{
    m_xDialog->response(RET_OK);
    return true;
}

IMPL_LINK_NOARG(CertificateChooser, ViewButtonHdl, weld::Button&, void)
diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
index ae7712f..5c1c7da 100644
--- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
+++ b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
@@ -353,9 +353,10 @@ IMPL_LINK_NOARG(DigitalSignaturesDialog, OKButtonHdl, weld::Button&, void)
    m_xDialog->response(RET_OK);
}

IMPL_LINK_NOARG(DigitalSignaturesDialog, SignatureSelectHdl, weld::TreeView&, void)
IMPL_LINK_NOARG(DigitalSignaturesDialog, SignatureSelectHdl, weld::TreeView&, bool)
{
    ImplShowSignaturesDetails();
    return true;
}

IMPL_LINK_NOARG(DigitalSignaturesDialog, AdESCompliantCheckBoxHdl, weld::ToggleButton&, void)