summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/vcl/weld.hxx3
-rw-r--r--vcl/source/app/salvtables.cxx7
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx12
3 files changed, 17 insertions, 5 deletions
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index 54a72e80c32d..b7d86c9c7df9 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -734,8 +734,9 @@ protected:
OUString signal_query_tooltip(const TreeIter& rIter) { return m_aQueryTooltipHdl.Call(rIter); }
public:
- void connect_query_tooltip(const Link<const TreeIter&, OUString>& rLink)
+ virtual void connect_query_tooltip(const Link<const TreeIter&, OUString>& rLink)
{
+ assert(!m_aQueryTooltipHdl.IsSet() || !rLink.IsSet());
m_aQueryTooltipHdl = rLink;
}
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index c37cab6261e8..5b0686a9f77e 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -3491,7 +3491,6 @@ public:
m_xTreeView->SetDoubleClickHdl(LINK(this, SalInstanceTreeView, DoubleClickHdl));
m_xTreeView->SetExpandingHdl(LINK(this, SalInstanceTreeView, ExpandingHdl));
m_xTreeView->SetPopupMenuHdl(LINK(this, SalInstanceTreeView, PopupMenuHdl));
- m_xTreeView->SetTooltipHdl(LINK(this, SalInstanceTreeView, TooltipHdl));
const long aTabPositions[] = { 0 };
m_xTreeView->SetTabs(SAL_N_ELEMENTS(aTabPositions), aTabPositions);
LclHeaderTabListBox* pHeaderBox = dynamic_cast<LclHeaderTabListBox*>(m_xTreeView.get());
@@ -3520,6 +3519,12 @@ public:
m_aRadioButtonData.SetLink(LINK(this, SalInstanceTreeView, ToggleHdl));
}
+ virtual void connect_query_tooltip(const Link<const weld::TreeIter&, OUString>& rLink) override
+ {
+ weld::TreeView::connect_query_tooltip(rLink);
+ m_xTreeView->SetTooltipHdl(LINK(this, SalInstanceTreeView, TooltipHdl));
+ }
+
virtual void columns_autosize() override
{
std::vector<long> aWidths;
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 71a8489ffbd5..9fe5c2d289ad 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -8564,7 +8564,7 @@ public:
, m_nDragDataDeleteignalId(0)
, m_nDragGetSignalId(0)
, m_nKeyPressSignalId(g_signal_connect(pTreeView, "key-press-event", G_CALLBACK(signalKeyPress), this))
- , m_nQueryTooltipSignalId(g_signal_connect(pTreeView, "query-tooltip", G_CALLBACK(signalQueryTooltip), this))
+ , m_nQueryTooltipSignalId(0)
, m_pChangeEvent(nullptr)
{
m_pColumns = gtk_tree_view_get_columns(m_pTreeView);
@@ -8625,6 +8625,12 @@ public:
m_nRowInsertedSignalId = g_signal_connect(pModel, "row-inserted", G_CALLBACK(signalRowInserted), this);
}
+ virtual void connect_query_tooltip(const Link<const weld::TreeIter&, OUString>& rLink) override
+ {
+ weld::TreeView::connect_query_tooltip(rLink);
+ m_nQueryTooltipSignalId = g_signal_connect(m_pTreeView, "query-tooltip", G_CALLBACK(signalQueryTooltip), this);
+ }
+
virtual void columns_autosize() override
{
gtk_tree_view_columns_autosize(m_pTreeView);
@@ -9998,6 +10004,8 @@ public:
{
if (m_pChangeEvent)
Application::RemoveUserEvent(m_pChangeEvent);
+ if (m_nQueryTooltipSignalId)
+ g_signal_handler_disconnect(m_pTreeView, m_nQueryTooltipSignalId);
g_signal_handler_disconnect(m_pTreeView, m_nKeyPressSignalId);
g_signal_handler_disconnect(m_pTreeView, m_nDragEndSignalId);
g_signal_handler_disconnect(m_pTreeView, m_nDragBeginSignalId);
@@ -10029,8 +10037,6 @@ public:
m_aColumnSignalIds.pop_back();
}
g_list_free(m_pColumns);
-
- g_signal_handler_disconnect(m_pTreeView, m_nQueryTooltipSignalId);
}
};