summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorJoren De Cuyper <joren.libreoffice@telenet.be>2013-03-06 18:10:26 +0100
committerMiklos Vajna <vmiklos@suse.cz>2013-03-18 10:24:37 +0000
commit271e47b20da7581b2cf1518dd3274c1348bf7083 (patch)
tree13368f5a2e814fd376da495f07fa3e5c4348cb7c /sw
parent5a7279a6d0b9476168020ce2793e2b2983d610fb (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/2788 Reviewed-by: Miklos Vajna <vmiklos@suse.cz> Tested-by: Miklos Vajna <vmiklos@suse.cz>
Diffstat (limited to 'sw')
-rw-r--r--sw/source/ui/docvw/PostItMgr.cxx28
1 files changed, 27 insertions, 1 deletions
diff --git a/sw/source/ui/docvw/PostItMgr.cxx b/sw/source/ui/docvw/PostItMgr.cxx
index c82a782ea015..d9ffdd85ebb3 100644
--- a/sw/source/ui/docvw/PostItMgr.cxx
+++ b/sw/source/ui/docvw/PostItMgr.cxx
@@ -99,7 +99,33 @@ 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.
+ else
+ return aPosAnchorA < aPosAnchorB;
}
SwPostItMgr::SwPostItMgr(SwView* pView)