summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/source/uibase/utlui/content.cxx45
1 files changed, 35 insertions, 10 deletions
diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx
index cf7329ee267f..36cf1449881c 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -571,7 +571,6 @@ void SwContentType::FillMemberList(bool* pbLevelOrVisibilityChanged)
}
break;
-
case ContentTypeId::TABLE :
{
const size_t nCount = m_pWrtShell->GetTableFrameFormatCount(true);
@@ -590,10 +589,18 @@ void SwContentType::FillMemberList(bool* pbLevelOrVisibilityChanged)
pCnt->SetInvisible();
m_pMember->insert(std::unique_ptr<SwContent>(pCnt));
+ }
- if(nOldMemberCount > i &&
- (*pOldMember)[i]->IsInvisible() != pCnt->IsInvisible())
- *pbLevelOrVisibilityChanged = true;
+ if (nullptr != pbLevelOrVisibilityChanged)
+ {
+ assert(pOldMember);
+ // need to check visibility (and equal entry number) after
+ // creation due to a sorted list being used here (before,
+ // entries with same index were compared already at creation
+ // time what worked before a sorted list was used)
+ *pbLevelOrVisibilityChanged = checkVisibilityChanged(
+ *pOldMember,
+ *m_pMember);
}
}
break;
@@ -635,9 +642,18 @@ void SwContentType::FillMemberList(bool* pbLevelOrVisibilityChanged)
!aAskItem.pObject ) // not visible
pCnt->SetInvisible();
m_pMember->insert(std::unique_ptr<SwContent>(pCnt));
- if (nOldMemberCount > i &&
- (*pOldMember)[i]->IsInvisible() != pCnt->IsInvisible())
- *pbLevelOrVisibilityChanged = true;
+ }
+
+ if(nullptr != pbLevelOrVisibilityChanged)
+ {
+ assert(pOldMember);
+ // need to check visibility (and equal entry number) after
+ // creation due to a sorted list being used here (before,
+ // entries with same index were compared already at creation
+ // time what worked before a sorted list was used)
+ *pbLevelOrVisibilityChanged = checkVisibilityChanged(
+ *pOldMember,
+ *m_pMember);
}
}
break;
@@ -803,11 +819,20 @@ void SwContentType::FillMemberList(bool* pbLevelOrVisibilityChanged)
pCnt->SetInvisible();
m_pMember->insert(std::unique_ptr<SwContent>(pCnt));
m_nMemberCount++;
- if (nOldMemberCount > i &&
- (*pOldMember)[i]->IsInvisible() != pCnt->IsInvisible() )
- *pbLevelOrVisibilityChanged = true;
}
}
+
+ if (nullptr != pbLevelOrVisibilityChanged)
+ {
+ assert(pOldMember);
+ // need to check visibility (and equal entry number) after
+ // creation due to a sorted list being used here (before,
+ // entries with same index were compared already at creation
+ // time what worked before a sorted list was used)
+ *pbLevelOrVisibilityChanged = checkVisibilityChanged(
+ *pOldMember,
+ *m_pMember);
+ }
}
}
break;