Kaydet (Commit) 609d4617 authored tarafından Caolán McNamara's avatar Caolán McNamara

Resolves: tdf#125270 clicking LinkButton should launch link

The gtk one does, but the gen one overwrite the default
handler instead of adding to it

Change-Id: I40c760821cb46283c00624797e97d601babd6200
Reviewed-on: https://gerrit.libreoffice.org/73339
Tested-by: Jenkins
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst b55ee51b
...@@ -94,6 +94,7 @@ class VCL_DLLPUBLIC FixedHyperlink : public FixedText ...@@ -94,6 +94,7 @@ class VCL_DLLPUBLIC FixedHyperlink : public FixedText
m_aClickHdl is called if the text is clicked. m_aClickHdl is called if the text is clicked.
*/ */
void SetClickHdl( const Link<FixedHyperlink&,void>& rLink ) { m_aClickHdl = rLink; } void SetClickHdl( const Link<FixedHyperlink&,void>& rLink ) { m_aClickHdl = rLink; }
const Link<FixedHyperlink&,void>& GetClickHdl() const { return m_aClickHdl; }
// ::FixedHyperbaseLink // ::FixedHyperbaseLink
......
...@@ -1932,6 +1932,7 @@ class SalInstanceLinkButton : public SalInstanceContainer, public virtual weld:: ...@@ -1932,6 +1932,7 @@ class SalInstanceLinkButton : public SalInstanceContainer, public virtual weld::
{ {
private: private:
VclPtr<FixedHyperlink> m_xButton; VclPtr<FixedHyperlink> m_xButton;
Link<FixedHyperlink&,void> m_aOrigClickHdl;
DECL_LINK(ClickHdl, FixedHyperlink&, void); DECL_LINK(ClickHdl, FixedHyperlink&, void);
public: public:
...@@ -1939,6 +1940,7 @@ public: ...@@ -1939,6 +1940,7 @@ public:
: SalInstanceContainer(pButton, pBuilder, bTakeOwnership) : SalInstanceContainer(pButton, pBuilder, bTakeOwnership)
, m_xButton(pButton) , m_xButton(pButton)
{ {
m_aOrigClickHdl = m_xButton->GetClickHdl();
m_xButton->SetClickHdl(LINK(this, SalInstanceLinkButton, ClickHdl)); m_xButton->SetClickHdl(LINK(this, SalInstanceLinkButton, ClickHdl));
} }
...@@ -1964,15 +1966,16 @@ public: ...@@ -1964,15 +1966,16 @@ public:
virtual ~SalInstanceLinkButton() override virtual ~SalInstanceLinkButton() override
{ {
m_xButton->SetClickHdl(Link<FixedHyperlink&,void>()); m_xButton->SetClickHdl(m_aOrigClickHdl);
} }
}; };
#include <vcl/pngwrite.hxx> #include <vcl/pngwrite.hxx>
#include <tools/stream.hxx> #include <tools/stream.hxx>
IMPL_LINK_NOARG(SalInstanceLinkButton, ClickHdl, FixedHyperlink&, void) IMPL_LINK(SalInstanceLinkButton, ClickHdl, FixedHyperlink&, rButton, void)
{ {
m_aOrigClickHdl.Call(rButton);
signal_clicked(); signal_clicked();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment