summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/source/uibase/dbui/dbtree.cxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/sw/source/uibase/dbui/dbtree.cxx b/sw/source/uibase/dbui/dbtree.cxx
index 9d1aa0f73436..23fdfcd68dda 100644
--- a/sw/source/uibase/dbui/dbtree.cxx
+++ b/sw/source/uibase/dbui/dbtree.cxx
@@ -332,14 +332,25 @@ void SwDBTreeList::Select(std::u16string_view rDBName, std::u16string_view rTabl
{
if (rDBName == m_xTreeView->get_text(*xParent))
{
+ if (rTableName.empty() && rColumnName.empty())
+ {
+ // Just select the database node, do not expand
+ m_xTreeView->scroll_to_row(*xParent);
+ m_xTreeView->select(*xParent);
+ return;
+ }
if (!m_xTreeView->iter_has_child(*xParent))
{
RequestingChildrenHdl(*xParent);
- m_xTreeView->expand_row(*xParent);
+ // If successful, it will be expanded in a call to scroll_to_row for its children
}
std::unique_ptr<weld::TreeIter> xChild(m_xTreeView->make_iterator(xParent.get()));
if (!m_xTreeView->iter_children(*xChild))
+ {
+ m_xTreeView->scroll_to_row(*xParent);
+ m_xTreeView->select(*xParent);
continue;
+ }
do
{
if (rTableName == m_xTreeView->get_text(*xChild))