diff options
author | Armin Le Grand <alg@apache.org> | 2014-03-19 12:34:44 +0000 |
---|---|---|
committer | Armin Le Grand <alg@apache.org> | 2014-03-19 12:34:44 +0000 |
commit | 0ab284f5064f66a11741fa4aa2e2774c1d7e5f14 (patch) | |
tree | 18c16d70a5cf790aab9dc56c86a5b02ed7b920a7 /vcl/source | |
parent | 0087ca89e3905009ed947c651f3dc70f3d61ea93 (diff) |
i122984 Avoid too many Print JobSetups, be more tolerant with last line TIFF imports
Notes
Notes:
merged as: 674a8a084bff6aa089d073b2710cd6a8b6662546
Diffstat (limited to 'vcl/source')
-rw-r--r-- | vcl/source/gdi/print.cxx | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/vcl/source/gdi/print.cxx b/vcl/source/gdi/print.cxx index d6503b5dc933..76e1642f1bd6 100644 --- a/vcl/source/gdi/print.cxx +++ b/vcl/source/gdi/print.cxx @@ -1224,11 +1224,25 @@ sal_Bool Printer::SetPaperSizeUser( const Size& rSize, bool bMatchNearest ) if ( mbInPrintPage ) return sal_False; - Size aPixSize = LogicToPixel( rSize ); - Size aPageSize = PixelToLogic( aPixSize, MAP_100TH_MM ); - if ( (maJobSetup.ImplGetConstData()->mePaperFormat != PAPER_USER) || - (maJobSetup.ImplGetConstData()->mnPaperWidth != aPageSize.Width()) || - (maJobSetup.ImplGetConstData()->mnPaperHeight != aPageSize.Height()) ) + const Size aPixSize = LogicToPixel( rSize ); + const Size aPageSize = PixelToLogic( aPixSize, MAP_100TH_MM ); + bool bNeedToChange(maJobSetup.ImplGetConstData()->mnPaperWidth != aPageSize.Width() || + maJobSetup.ImplGetConstData()->mnPaperHeight != aPageSize.Height()); + + if(!bNeedToChange) + { + // #122984# only need to change when Paper is different from PAPER_USER and + // the mapped Paper which will created below in the call to ImplFindPaperFormatForUserSize + // and will replace maJobSetup.ImplGetConstData()->mePaperFormat. This leads to + // unnecessary JobSetups, e.g. when printing a multi-page fax, but also with + // normal print + const Paper aPaper = ImplGetPaperFormat(aPageSize.Width(), aPageSize.Height()); + + bNeedToChange = maJobSetup.ImplGetConstData()->mePaperFormat != PAPER_USER && + maJobSetup.ImplGetConstData()->mePaperFormat != aPaper; + } + + if(bNeedToChange) { JobSetup aJobSetup = maJobSetup; ImplJobSetup* pSetupData = aJobSetup.ImplGetData(); |