summaryrefslogtreecommitdiff
path: root/i18nutil/source/utility/paper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'i18nutil/source/utility/paper.cxx')
-rw-r--r--i18nutil/source/utility/paper.cxx14
1 files changed, 9 insertions, 5 deletions
diff --git a/i18nutil/source/utility/paper.cxx b/i18nutil/source/utility/paper.cxx
index 6b59399e9124..0bc2d61a1134 100644
--- a/i18nutil/source/utility/paper.cxx
+++ b/i18nutil/source/utility/paper.cxx
@@ -158,7 +158,7 @@ static const size_t nTabSize = SAL_N_ELEMENTS(aDinTab);
#define MAXSLOPPY 21
-void PaperInfo::doSloppyFit()
+void PaperInfo::doSloppyFit(bool bAlsoTryRotated)
{
if (m_eType != PAPER_USER)
return;
@@ -169,11 +169,8 @@ void PaperInfo::doSloppyFit()
long lDiffW = labs(aDinTab[i].m_nWidth - m_nPaperWidth);
long lDiffH = labs(aDinTab[i].m_nHeight - m_nPaperHeight);
- long lFlipDiffW = labs(aDinTab[i].m_nHeight - m_nPaperWidth);
- long lFlipDiffH = labs(aDinTab[i].m_nWidth - m_nPaperHeight);
- if ( (lDiffW < MAXSLOPPY && lDiffH < MAXSLOPPY) ||
- (lFlipDiffW < MAXSLOPPY && lFlipDiffH < MAXSLOPPY) )
+ if (lDiffW < MAXSLOPPY && lDiffH < MAXSLOPPY)
{
m_nPaperWidth = aDinTab[i].m_nWidth;
m_nPaperHeight = aDinTab[i].m_nHeight;
@@ -181,6 +178,13 @@ void PaperInfo::doSloppyFit()
return;
}
}
+
+ if (bAlsoTryRotated)
+ {
+ std::swap(m_nPaperWidth, m_nPaperHeight);
+ doSloppyFit();
+ std::swap(m_nPaperWidth, m_nPaperHeight);
+ }
}
bool PaperInfo::sloppyEqual(const PaperInfo &rOther) const