diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-03-03 17:09:41 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-03-04 09:54:04 +0100 |
commit | e33715206c48c945e6acb99cdd58d81e6514c242 (patch) | |
tree | 471b45567d9fdd0981d20b7df712c6e98113e7da /vcl | |
parent | c57d6d39c80844c9d4c6bfed85cc151e52a67b34 (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.cxx | 12 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 14 |
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) |