parent
f5f8afa0e8
commit
4dfd8bac3f
@ -1,88 +0,0 @@
|
||||
From 1c6bd2c40fd03ec735fd6dbec01520f10ee1d55a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Fri, 4 Jul 2014 13:28:08 +0100
|
||||
Subject: [PATCH] Resolves: fdo#80911 toggle original page orientation on paper
|
||||
fallback
|
||||
|
||||
User defined page sizes which match rotated paper sizes available to the
|
||||
printer don't work correctly when they are already in landscape mode. i.e. the
|
||||
orientation should be toggled, not overwritten.
|
||||
|
||||
Change-Id: I30dca5f988ad72319410a03f47eccff277be8640
|
||||
---
|
||||
vcl/source/gdi/print.cxx | 18 ++++++++++++------
|
||||
1 file changed, 12 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/vcl/source/gdi/print.cxx b/vcl/source/gdi/print.cxx
|
||||
index 6c8bdc4..ded7ebc 100644
|
||||
--- a/vcl/source/gdi/print.cxx
|
||||
+++ b/vcl/source/gdi/print.cxx
|
||||
@@ -1352,6 +1352,7 @@ void Printer::ImplFindPaperFormatForUserSize( JobSetup& aJobSetup, bool bMatchNe
|
||||
int nLandscapeAngle = GetLandscapeAngle();
|
||||
int nPaperCount = GetPaperInfoCount();
|
||||
bool bFound = false;
|
||||
+ bool bToggleOrient = false;
|
||||
|
||||
PaperInfo aInfo(pSetupData->mnPaperWidth, pSetupData->mnPaperHeight);
|
||||
|
||||
@@ -1364,7 +1365,6 @@ void Printer::ImplFindPaperFormatForUserSize( JobSetup& aJobSetup, bool bMatchNe
|
||||
{
|
||||
pSetupData->mePaperFormat = ImplGetPaperFormat( rPaperInfo.getWidth(),
|
||||
rPaperInfo.getHeight() );
|
||||
- pSetupData->meOrientation = ORIENTATION_PORTRAIT;
|
||||
bFound = true;
|
||||
break;
|
||||
}
|
||||
@@ -1388,8 +1388,8 @@ void Printer::ImplFindPaperFormatForUserSize( JobSetup& aJobSetup, bool bMatchNe
|
||||
{
|
||||
pSetupData->mePaperFormat = ImplGetPaperFormat( rPaperInfo.getWidth(),
|
||||
rPaperInfo.getHeight() );
|
||||
- pSetupData->meOrientation = ORIENTATION_LANDSCAPE;
|
||||
bFound = true;
|
||||
+ bToggleOrient = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1399,7 +1399,6 @@ void Printer::ImplFindPaperFormatForUserSize( JobSetup& aJobSetup, bool bMatchNe
|
||||
{
|
||||
sal_Int64 nBestMatch = SAL_MAX_INT64;
|
||||
int nBestIndex = 0;
|
||||
- Orientation eBestOrientation = ORIENTATION_PORTRAIT;
|
||||
for( int i = 0; i < nPaperCount; i++ )
|
||||
{
|
||||
const PaperInfo& rPaperInfo = GetPaperInfo( i );
|
||||
@@ -1412,7 +1411,7 @@ void Printer::ImplFindPaperFormatForUserSize( JobSetup& aJobSetup, bool bMatchNe
|
||||
{
|
||||
nBestMatch = nMatch;
|
||||
nBestIndex = i;
|
||||
- eBestOrientation = ORIENTATION_PORTRAIT;
|
||||
+ bToggleOrient = false;
|
||||
}
|
||||
|
||||
// check landscape match
|
||||
@@ -1423,13 +1422,20 @@ void Printer::ImplFindPaperFormatForUserSize( JobSetup& aJobSetup, bool bMatchNe
|
||||
{
|
||||
nBestMatch = nMatch;
|
||||
nBestIndex = i;
|
||||
- eBestOrientation = ORIENTATION_LANDSCAPE;
|
||||
+ bToggleOrient = true;
|
||||
}
|
||||
}
|
||||
const PaperInfo& rBestInfo = GetPaperInfo( nBestIndex );
|
||||
pSetupData->mePaperFormat = ImplGetPaperFormat( rBestInfo.getWidth(),
|
||||
rBestInfo.getHeight() );
|
||||
- pSetupData->meOrientation = eBestOrientation;
|
||||
+ }
|
||||
+
|
||||
+ if (bToggleOrient)
|
||||
+ {
|
||||
+ if (pSetupData->meOrientation == ORIENTATION_PORTRAIT)
|
||||
+ pSetupData->meOrientation = ORIENTATION_LANDSCAPE;
|
||||
+ else
|
||||
+ pSetupData->meOrientation = ORIENTATION_PORTRAIT;
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.9.3
|
||||
|
Loading…
Reference in new issue