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

Reply via email to