vcl/inc/jsdialog/jsdialogbuilder.hxx |    1 +
 vcl/jsdialog/jsdialogbuilder.cxx     |   11 +++++++++++
 2 files changed, 12 insertions(+)

New commits:
commit 047c05ee1d43bba80e24612bf759e5b520146d2d
Author:     NickWingate <[email protected]>
AuthorDate: Fri Sep 12 18:50:16 2025 +0100
Commit:     Szymon Kłos <[email protected]>
CommitDate: Mon Sep 15 11:19:17 2025 +0200

    JSTreeView: send select actions to online
    
    Previously we just defaulted to `SalInstanceTreeView::select`
    which doesn't notify online of entries being selected.
    
    Signed-off-by: NickWingate <[email protected]>
    Change-Id: Ia7644b2dc1619cbd97f2e154658dabeb0ae966f3
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190900
    Reviewed-by: Szymon Kłos <[email protected]>
    Tested-by: Jenkins CollaboraOffice <[email protected]>

diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx 
b/vcl/inc/jsdialog/jsdialogbuilder.hxx
index 962b806f6bae..37b1f45f442c 100644
--- a/vcl/inc/jsdialog/jsdialogbuilder.hxx
+++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx
@@ -724,6 +724,7 @@ public:
     using SalInstanceTreeView::select;
     /// pos is used differently here, it defines how many steps of iterator we 
need to perform to take entry
     virtual void select(int pos) override;
+    virtual void select(const weld::TreeIter& rIter) override;
 
     virtual weld::TreeView* get_drag_source() const override;
 
diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx
index 29c5bff12161..9138f9faca65 100644
--- a/vcl/jsdialog/jsdialogbuilder.cxx
+++ b/vcl/jsdialog/jsdialogbuilder.cxx
@@ -1745,6 +1745,17 @@ void JSTreeView::select(int pos)
     sendAction(std::move(pMap));
 }
 
+void JSTreeView::select(const weld::TreeIter& rIter)
+{
+    SalInstanceTreeView::select(rIter);
+
+    std::unique_ptr<jsdialog::ActionDataMap> pMap = 
std::make_unique<jsdialog::ActionDataMap>();
+    const SalInstanceTreeIter& rVclIter = static_cast<const 
SalInstanceTreeIter&>(rIter);
+    (*pMap)[ACTION_TYPE ""_ostr] = "select";
+    (*pMap)["position"_ostr] = 
OUString::number(m_xTreeView->GetEntryPos(rVclIter.iter));
+    sendAction(std::move(pMap));
+}
+
 weld::TreeView* JSTreeView::get_drag_source() const { return g_DragSource; }
 
 void JSTreeView::drag_start() { g_DragSource = this; }

Reply via email to