From d4c56284813c1e38a2fb46e9a52c5350d1ba3cef Mon Sep 17 00:00:00 2001 From: Jim Raykowski Date: Sat, 6 Nov 2021 23:27:04 -0800 Subject: SwNavigator: Restore content tree settings before showing Content tracking by the Navigator content tree and outline levels displayed currently do not use the stored Navigator settings when the tree is initially shown. This can cause content to be tracked and outline levels to be shown that are different from the stored settings when the tree is initially shown. This patch fixes these possibilities by changing when the stored content tree settings are applied to before the tree is initially filled and shown. Change-Id: I5443788c3fbacb36695cfc56163f217408254fd6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124831 Tested-by: Jenkins Reviewed-by: Jim Raykowski --- sw/source/uibase/utlui/navipi.cxx | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/sw/source/uibase/utlui/navipi.cxx b/sw/source/uibase/utlui/navipi.cxx index 36c697da9d37..feee92814c34 100644 --- a/sw/source/uibase/utlui/navipi.cxx +++ b/sw/source/uibase/utlui/navipi.cxx @@ -519,6 +519,25 @@ SwNavigationPI::SwNavigationPI(weld::Widget* pParent, { m_xContainer->connect_container_focus_changed(LINK(this, SwNavigationPI, SetFocusChildHdl)); + // Restore content tree settings before calling UpdateInitShow. UpdateInitShow calls Fillbox, + // which calls Display and UpdateTracking. Incorrect outline levels could be displayed and + // unexpected content tracking could occur if these content tree settings are not done before. + m_xContentTree->SetOutlineLevel(static_cast(m_pConfig->GetOutlineLevel())); + m_xContentTree->SetOutlineTracking(static_cast(m_pConfig->GetOutlineTracking())); + m_xContentTree->SetTableTracking(m_pConfig->IsTableTracking()); + m_xContentTree->SetSectionTracking(m_pConfig->IsSectionTracking()); + m_xContentTree->SetFrameTracking(m_pConfig->IsFrameTracking()); + m_xContentTree->SetImageTracking(m_pConfig->IsImageTracking()); + m_xContentTree->SetOLEobjectTracking(m_pConfig->IsOLEobjectTracking()); + m_xContentTree->SetBookmarkTracking(m_pConfig->IsBookmarkTracking()); + m_xContentTree->SetHyperlinkTracking(m_pConfig->IsHyperlinkTracking()); + m_xContentTree->SetReferenceTracking(m_pConfig->IsReferenceTracking()); + m_xContentTree->SetIndexTracking(m_pConfig->IsIndexTracking()); + m_xContentTree->SetCommentTracking(m_pConfig->IsCommentTracking()); + m_xContentTree->SetDrawingObjectTracking(m_pConfig->IsDrawingObjectTracking()); + m_xContentTree->SetFieldTracking(m_pConfig->IsFieldTracking()); + m_xContentTree->SetFootnoteTracking(m_pConfig->IsFootnoteTracking()); + UpdateInitShow(); GetCreateView(); @@ -573,23 +592,6 @@ SwNavigationPI::SwNavigationPI(weld::Widget* pParent, SetRegionDropMode(m_pConfig->GetRegionMode()); - m_xContentTree->SetOutlineLevel(static_cast(m_pConfig->GetOutlineLevel())); - - m_xContentTree->SetOutlineTracking(static_cast(m_pConfig->GetOutlineTracking())); - m_xContentTree->SetTableTracking(m_pConfig->IsTableTracking()); - m_xContentTree->SetSectionTracking(m_pConfig->IsSectionTracking()); - m_xContentTree->SetFrameTracking(m_pConfig->IsFrameTracking()); - m_xContentTree->SetImageTracking(m_pConfig->IsImageTracking()); - m_xContentTree->SetOLEobjectTracking(m_pConfig->IsOLEobjectTracking()); - m_xContentTree->SetBookmarkTracking(m_pConfig->IsBookmarkTracking()); - m_xContentTree->SetHyperlinkTracking(m_pConfig->IsHyperlinkTracking()); - m_xContentTree->SetReferenceTracking(m_pConfig->IsReferenceTracking()); - m_xContentTree->SetIndexTracking(m_pConfig->IsIndexTracking()); - m_xContentTree->SetCommentTracking(m_pConfig->IsCommentTracking()); - m_xContentTree->SetDrawingObjectTracking(m_pConfig->IsDrawingObjectTracking()); - m_xContentTree->SetFieldTracking(m_pConfig->IsFieldTracking()); - m_xContentTree->SetFootnoteTracking(m_pConfig->IsFootnoteTracking()); - m_xContentTree->set_selection_mode(SelectionMode::Single); m_xContentTree->ShowTree(); m_xContent6ToolBox->set_item_active("listbox", true); -- cgit