vcl/inc/ppdparser.hxx | 2 +- vcl/unx/generic/printer/ppdparser.cxx | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-)
New commits: commit f1b582772bb47fb421886fa268d469c1b5ba41bb Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Sat Aug 3 21:33:10 2024 +0100 Commit: Caolán McNamara <caolan.mcnam...@collabora.com> CommitDate: Sun Aug 4 15:40:37 2024 +0200 Resolves: tdf#154959 label printers no longer rotate a) partly revert this piece of: commit 598ff4e2433a419a432fd54ed5dac560663ec107 loplugin:constantparam in vcl b) fix the thinko mismatch of "true" for bSwaped detected by that plugin Change-Id: I2d31a969538d1cfa8d22a089fa61fdaa5454cc0f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171449 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com> diff --git a/vcl/inc/ppdparser.hxx b/vcl/inc/ppdparser.hxx index 732e9e550166..12cef79d654b 100644 --- a/vcl/inc/ppdparser.hxx +++ b/vcl/inc/ppdparser.hxx @@ -172,7 +172,7 @@ private: static void initPPDFiles(PPDCache &rPPDCache); static OUString getPPDFile( const OUString& rFile ); - OUString matchPaperImpl(int nWidth, int nHeight, psp::orientation* pOrientation) const; + OUString matchPaperImpl(int nWidth, int nHeight, bool bSwapped, psp::orientation* pOrientation = nullptr) const; public: ~PPDParser(); diff --git a/vcl/unx/generic/printer/ppdparser.cxx b/vcl/unx/generic/printer/ppdparser.cxx index 6f354ad30ec1..feb67317c46a 100644 --- a/vcl/unx/generic/printer/ppdparser.cxx +++ b/vcl/unx/generic/printer/ppdparser.cxx @@ -1412,7 +1412,7 @@ bool PPDParser::getPaperDimension( return true; } -OUString PPDParser::matchPaperImpl(int nWidth, int nHeight, psp::orientation* pOrientation) const +OUString PPDParser::matchPaperImpl(int nWidth, int nHeight, bool bSwapped, psp::orientation* pOrientation) const { if( ! m_pPaperDimensions ) return OUString(); @@ -1443,10 +1443,16 @@ OUString PPDParser::matchPaperImpl(int nWidth, int nHeight, psp::orientation* pO } } + if (nPDim == -1 && !bSwapped) + { + // swap portrait/landscape and try again + return matchPaperImpl(nHeight, nWidth, true, pOrientation); + } + if (nPDim == -1) return OUString(); - if (pOrientation) + if (bSwapped && pOrientation) { switch (*pOrientation) { @@ -1464,7 +1470,7 @@ OUString PPDParser::matchPaperImpl(int nWidth, int nHeight, psp::orientation* pO OUString PPDParser::matchPaper(int nWidth, int nHeight, psp::orientation* pOrientation) const { - return matchPaperImpl(nHeight, nWidth, pOrientation); + return matchPaperImpl(nHeight, nWidth, false, pOrientation); } OUString PPDParser::getDefaultInputSlot() const