diff options
Diffstat (limited to 'sw/source')
-rw-r--r-- | sw/source/core/crsr/crstrvl.cxx | 6 | ||||
-rw-r--r-- | sw/source/uibase/utlui/content.cxx | 2 | ||||
-rw-r--r-- | sw/source/uibase/utlui/navipi.cxx | 5 |
3 files changed, 12 insertions, 1 deletions
diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx index a41f3ae86799..893233c7ec1a 100644 --- a/sw/source/core/crsr/crstrvl.cxx +++ b/sw/source/core/crsr/crstrvl.cxx @@ -1148,6 +1148,12 @@ SwOutlineNodes::size_type SwCursorShell::GetOutlinePos(sal_uInt8 nLevel, SwPaM* if (sw::IsParaPropsNode(*GetLayout(), *pNd->GetTextNode()) && pNd->GetTextNode()->GetAttrOutlineLevel()-1 <= nLevel) { + if (pNd->GetIndex() < rNds.GetEndOfExtras().GetIndex() + && pCursor->GetNode().GetIndex() > rNds.GetEndOfExtras().GetIndex()) + { + // node found in extras but cursor position is not in extras + return SwOutlineNodes::npos; + } return nPos; } } diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx index 5ac56dbabc43..5b3ce3b6474b 100644 --- a/sw/source/uibase/utlui/content.cxx +++ b/sw/source/uibase/utlui/content.cxx @@ -3210,7 +3210,7 @@ IMPL_LINK_NOARG(SwContentTree, TimerUpdate, Timer *, void) void SwContentTree::UpdateTracking() { - if (State::HIDDEN == m_eState) + if (State::HIDDEN == m_eState || !m_pActiveShell) return; // m_bIgnoreViewChange is set on delete diff --git a/sw/source/uibase/utlui/navipi.cxx b/sw/source/uibase/utlui/navipi.cxx index 725e4257ee14..7c440647e4e3 100644 --- a/sw/source/uibase/utlui/navipi.cxx +++ b/sw/source/uibase/utlui/navipi.cxx @@ -750,6 +750,11 @@ void SwNavigationPI::StateChanged(StateChangedType nStateChange) // show content if docked if (SfxChildWindowContext::GetFloatingWindow(GetParent()) == nullptr && IsZoomedIn()) ZoomOut(); + if (m_xContentTree) + { + m_xContentTree->SetActiveShell(GetActiveWrtShell()); + m_xContentTree->UpdateTracking(); + } } else if (nStateChange == StateChangedType::ControlFocus) { |