include/vcl/weld.hxx | 3 +++ vcl/source/app/salvtables.cxx | 12 ++++++++++++ vcl/unx/gtk3/gtk3gtkinst.cxx | 14 ++++++++++++++ 3 files changed, 29 insertions(+)
New commits: commit e33715206c48c945e6acb99cdd58d81e6514c242 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Tue Mar 3 17:09:41 2020 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Mar 4 09:54:04 2020 +0100 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 <caol...@redhat.com> diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index 75c38262c426..6476695bbb27 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -1047,6 +1047,9 @@ public: void set_toggle_columns_as_radio(const std::vector<int>& rCols) { m_aRadioIndexes = rCols; } + virtual void vadjustment_set_value(int value) = 0; + virtual int vadjustment_get_value() const = 0; + void save_value() { m_sSavedValue = get_selected_text(); } OUString const& get_saved_value() const { return m_sSavedValue; } bool get_value_changed_from_saved() const { return m_sSavedValue != get_selected_text(); } 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) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits