diff options
author | Joren De Cuyper <joren.libreoffice@telenet.be> | 2013-03-06 18:10:26 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2013-03-18 09:04:06 +0000 |
commit | 1e2eecabfe0e1c192cae300430d4b0579c3be845 (patch) | |
tree | d9b650fdf48b58b4e944777bb832c7a97f802205 | |
parent | 75d6eec4be88194126d31fc0f235cd3a303936bd (diff) |
fdo#34800 Comments added to footer are placed at the right top of the page.
I also merged (manually) the changes of the cleanup
commit of Michael Stahl ( commit id 859e94294bdfd8595c88dd7f14da09ead8b32a45 )
Change-Id: Ibcd0373110fde848dccf93ffe9100459c7cc64a5
Reviewed-on: https://gerrit.libreoffice.org/2572
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
Reviewed-on: https://gerrit.libreoffice.org/2777
Reviewed-by: Miklos Vajna <vmiklos@suse.cz>
Tested-by: Miklos Vajna <vmiklos@suse.cz>
-rw-r--r-- | sw/source/ui/docvw/PostItMgr.cxx | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/sw/source/ui/docvw/PostItMgr.cxx b/sw/source/ui/docvw/PostItMgr.cxx index 3a2456594e99..7f67fb0b441d 100644 --- a/sw/source/ui/docvw/PostItMgr.cxx +++ b/sw/source/ui/docvw/PostItMgr.cxx @@ -90,7 +90,32 @@ using namespace sw::sidebarwindows; bool comp_pos(const SwSidebarItem* a, const SwSidebarItem* b) { // sort by anchor position - return a->GetAnchorPosition() < b->GetAnchorPosition(); + SwPosition aPosAnchorA = a->GetAnchorPosition(); + SwPosition aPosAnchorB = b->GetAnchorPosition(); + + bool aAnchorAInFooter = false; + bool aAnchorBInFooter = false; + + // is the anchor placed in Footnote or the Footer? + if( aPosAnchorA.nNode.GetNode().FindFootnoteStartNode() || aPosAnchorA.nNode.GetNode().FindFooterStartNode() ) + aAnchorAInFooter = true; + if( aPosAnchorB.nNode.GetNode().FindFootnoteStartNode() || aPosAnchorB.nNode.GetNode().FindFooterStartNode() ) + aAnchorBInFooter = true; + + // fdo#34800 + // if AnchorA is in footnote, and AnchorB isn't + // we do not want to change over the position + if( aAnchorAInFooter && !aAnchorBInFooter ) + return false; + // if aAnchorA is not placed in a footnote, and aAnchorB is + // force a change over + else if( !aAnchorAInFooter && aAnchorBInFooter ) + return true; + // If neither or both are in the footer, compare the positions. + // Since footnotes are in Inserts section of nodes array and footers + // in Autotext section, all footnotes precede any footers so no need + // to check that. + return aPosAnchorA < aPosAnchorB; } SwPostItMgr::SwPostItMgr(SwView* pView) |