summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-03-03 17:09:41 +0000
committerCaolán McNamara <caolanm@redhat.com>2020-03-04 09:54:04 +0100
commite33715206c48c945e6acb99cdd58d81e6514c242 (patch)
tree471b45567d9fdd0981d20b7df712c6e98113e7da /vcl
parentc57d6d39c80844c9d4c6bfed85cc151e52a67b34 (diff)
allow control over treeview scroll position
Change-Id: Ifa29416c4a716b3759f279ae4f0ce9179325f7a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89927 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/app/salvtables.cxx12
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx14
2 files changed, 26 insertions, 0 deletions
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index f42448890b11..55a7d221968b 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -4484,6 +4484,18 @@ public:
virtual TreeView* get_drag_source() const override { return g_DragSource; }
+ virtual int vadjustment_get_value() const override
+ {
+ ScrollBar* pVertScrollBar = m_xTreeView->GetVScroll();
+ return pVertScrollBar->GetThumbPos();
+ }
+
+ virtual void vadjustment_set_value(int value) override
+ {
+ ScrollBar* pVertScrollBar = m_xTreeView->GetVScroll();
+ pVertScrollBar->SetThumbPos(value);
+ }
+
virtual ~SalInstanceTreeView() override
{
LclHeaderTabListBox* pHeaderBox = dynamic_cast<LclHeaderTabListBox*>(m_xTreeView.get());
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index b298bc2940cb..28344edc8cc4 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -8622,6 +8622,7 @@ private:
gulong m_nPopupMenuSignalId;
gulong m_nKeyPressSignalId;
gulong m_nQueryTooltipSignalId;
+ GtkAdjustment* m_pVAdjustment;
ImplSVEvent* m_pChangeEvent;
DECL_LINK(async_signal_changed, void*, void);
@@ -9177,6 +9178,7 @@ public:
, m_nPopupMenuSignalId(g_signal_connect(pTreeView, "popup-menu", G_CALLBACK(signalPopupMenu), this))
, m_nKeyPressSignalId(g_signal_connect(pTreeView, "key-press-event", G_CALLBACK(signalKeyPress), this))
, m_nQueryTooltipSignalId(0)
+ , m_pVAdjustment(gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(pTreeView)))
, m_pChangeEvent(nullptr)
{
m_pColumns = gtk_tree_view_get_columns(m_pTreeView);
@@ -10664,6 +10666,18 @@ public:
gtk_tree_view_set_drag_dest_row(m_pTreeView, nullptr, GTK_TREE_VIEW_DROP_BEFORE);
}
+ virtual int vadjustment_get_value() const override
+ {
+ return gtk_adjustment_get_value(m_pVAdjustment);
+ }
+
+ virtual void vadjustment_set_value(int value) override
+ {
+ disable_notify_events();
+ gtk_adjustment_set_value(m_pVAdjustment, value);
+ enable_notify_events();
+ }
+
virtual ~GtkInstanceTreeView() override
{
if (m_pChangeEvent)