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

Reply via email to