vcl/inc/ppdparser.hxx | 2 +- vcl/unx/generic/printer/ppdparser.cxx | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-)
New commits: commit 6900c51a1054cd12179f4ad15ba8d5768b43afca Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Sat Aug 3 21:33:10 2024 +0100 Commit: Adolfo Jayme Barrientos <fit...@ubuntu.com> CommitDate: Sun Aug 11 14:24:44 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> (cherry picked from commit f1b582772bb47fb421886fa268d469c1b5ba41bb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171681 Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.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 c869765c8767..43d252477415 100644 --- a/vcl/unx/generic/printer/ppdparser.cxx +++ b/vcl/unx/generic/printer/ppdparser.cxx @@ -1408,7 +1408,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(); @@ -1439,10 +1439,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) { @@ -1460,7 +1466,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