diff options
Diffstat (limited to 'i18nutil/source/utility/paper.cxx')
-rw-r--r-- | i18nutil/source/utility/paper.cxx | 14 |
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 |