From adac97f9a985bf878c1825e1d7b822fe72f862c0 Mon Sep 17 00:00:00 2001 From: lisongmin Date: Sun, 9 May 2021 19:52:23 +0800 Subject: [PATCH] use last section name on previous pages if current page do not have a section name --- src/lib/outline.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/outline.cc b/src/lib/outline.cc index 353938c4c..8c2eba74b 100644 --- a/src/lib/outline.cc +++ b/src/lib/outline.cc @@ -275,12 +275,16 @@ void Outline::addEmptyWebPage() { void OutlinePrivate::buildHFCache(OutlineItem * i, int level) { buildPrefixSum(); if (level >= hfCache.size()) return; + + OutlineItem * latest = 0; foreach (OutlineItem * j, i->children) { int page = j->page + prefixSum[j->document]; while (hfCache[level].size() < page) - hfCache[level].push_back(hfCache[level].back()); + hfCache[level].push_back(latest ? latest : hfCache[level].back()); if (hfCache[level].size() == page) hfCache[level].push_back(j); + + latest = j; buildHFCache(j, level+1); } }