diff options
-rw-r--r-- | sc/inc/document.hxx | 2 | ||||
-rw-r--r-- | sc/source/core/data/documen8.cxx | 4 | ||||
-rw-r--r-- | sc/source/filter/excel/xlroot.cxx | 9 | ||||
-rw-r--r-- | sc/source/filter/inc/xlroot.hxx | 2 |
4 files changed, 10 insertions, 7 deletions
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index 1188bbd9da2c..829091553d10 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -2173,7 +2173,7 @@ public: SfxPrinter* GetPrinter( bool bCreateIfNotExist = true ); void SetPrinter( VclPtr<SfxPrinter> const & pNewPrinter ); VirtualDevice* GetVirtualDevice_100th_mm(); - SC_DLLPUBLIC OutputDevice* GetRefDevice(); // WYSIWYG: Printer, otherwise VirtualDevice... + SC_DLLPUBLIC OutputDevice* GetRefDevice(bool bForceVirtDev = false); // WYSIWYG: Printer, otherwise VirtualDevice... bool GetNextSpellingCell( SCCOL& nCol, SCROW& nRow, SCTAB nTab, bool bInSel, const ScMarkData& rMark) const; diff --git a/sc/source/core/data/documen8.cxx b/sc/source/core/data/documen8.cxx index 3354ead298f0..a7bcd9967b0d 100644 --- a/sc/source/core/data/documen8.cxx +++ b/sc/source/core/data/documen8.cxx @@ -197,11 +197,11 @@ VirtualDevice* ScDocument::GetVirtualDevice_100th_mm() return mpVirtualDevice_100th_mm; } -OutputDevice* ScDocument::GetRefDevice() +OutputDevice* ScDocument::GetRefDevice(bool bForceVirtDev) { // Create printer like ref device, see Writer... OutputDevice* pRefDevice = nullptr; - if ( SC_MOD()->GetInputOptions().GetTextWysiwyg() ) + if ( !bForceVirtDev && SC_MOD()->GetInputOptions().GetTextWysiwyg() ) pRefDevice = GetPrinter(); else pRefDevice = GetVirtualDevice_100th_mm(); diff --git a/sc/source/filter/excel/xlroot.cxx b/sc/source/filter/excel/xlroot.cxx index bac3ca1b3f59..2702e85f5c56 100644 --- a/sc/source/filter/excel/xlroot.cxx +++ b/sc/source/filter/excel/xlroot.cxx @@ -24,6 +24,7 @@ #include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/frame/XFrame.hpp> #include <com/sun/star/i18n/ScriptType.hpp> +#include <comphelper/lok.hxx> #include <comphelper/processfactory.hxx> #include <comphelper/servicehelper.hxx> #include <sot/storage.hxx> @@ -37,6 +38,7 @@ #include <vcl/font.hxx> #include <vcl/settings.hxx> #include <tools/diagnose_ex.h> +#include <vcl/virdev.hxx> #include <editeng/editstat.hxx> #include <scitems.hxx> @@ -207,7 +209,8 @@ void XclRoot::SetTextEncoding( rtl_TextEncoding eTextEnc ) void XclRoot::SetCharWidth( const XclFontData& rFontData ) { mrData.mnCharWidth = 0; - if( OutputDevice* pPrinter = GetPrinter() ) + bool bIsLOK = comphelper::LibreOfficeKit::isActive(); + if( OutputDevice* pPrinter = GetPrinter( bIsLOK ) ) { vcl::Font aFont( rFontData.maName, Size( 0, rFontData.mnHeight ) ); aFont.SetFamily( rFontData.GetScFamily( GetTextEncoding() ) ); @@ -298,9 +301,9 @@ ScModelObj* XclRoot::GetDocModelObj() const return pDocShell ? comphelper::getFromUnoTunnel<ScModelObj>( pDocShell->GetModel() ) : nullptr; } -OutputDevice* XclRoot::GetPrinter() const +OutputDevice* XclRoot::GetPrinter(bool bForceVirtDev) const { - return GetDoc().GetRefDevice(); + return GetDoc().GetRefDevice(bForceVirtDev); } ScStyleSheetPool& XclRoot::GetStyleSheetPool() const diff --git a/sc/source/filter/inc/xlroot.hxx b/sc/source/filter/inc/xlroot.hxx index 3e6db3701fd3..b1202ff7c194 100644 --- a/sc/source/filter/inc/xlroot.hxx +++ b/sc/source/filter/inc/xlroot.hxx @@ -204,7 +204,7 @@ public: /** Returns the object model of the Calc document. */ ScModelObj* GetDocModelObj() const; /** Returns pointer to the printer of the Calc document. */ - OutputDevice* GetPrinter() const; + OutputDevice* GetPrinter(bool bForceVirtDev = false) const; /** Returns the style sheet pool of the Calc document. */ ScStyleSheetPool& GetStyleSheetPool() const; /** Returns the defined names container of the Calc document. */ |