sc/source/ui/app/transobj.cxx | 12 +++++------- sc/source/ui/inc/transobj.hxx | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-)
New commits: commit eb99e28a92517cac9534a6a52b9266777f735ce5 Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Fri Aug 8 13:34:54 2025 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Fri Aug 8 16:27:45 2025 +0200 tdf#167075: init doc shell before pasting as png/bmp Regression after commit d8ab8992bd35aedfc1d2b0debebab0d623aa8d09 Author: Xisco Fauli <xiscofa...@libreoffice.org> Date: Mon May 26 11:06:06 2025 +0200 ScViewData: pass ScDocShell by ref and commit 52e3b2b040ac54c2a5661e3676b135170f028f50 Author: Xisco Fauli <xiscofa...@libreoffice.org> Date: Mon May 26 16:06:12 2025 +0200 ScViewData: simplify constructors Change-Id: I0b70bd4efe6cd18ca3c7a13e92469e09b4ed7914 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189188 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> Tested-by: Jenkins diff --git a/sc/source/ui/app/transobj.cxx b/sc/source/ui/app/transobj.cxx index b210e8e752d0..001979e2f569 100644 --- a/sc/source/ui/app/transobj.cxx +++ b/sc/source/ui/app/transobj.cxx @@ -97,21 +97,18 @@ void ScTransferObj::GetAreaSize( const ScDocument& rDoc, SCTAB nTab1, SCTAB nTab nCol = nMaxCol; } -void ScTransferObj::PaintToDev( OutputDevice* pDev, ScDocument& rDoc, double nPrintFactor, +void ScTransferObj::PaintToDev( OutputDevice* pDev, ScDocShell& rDocSh, double nPrintFactor, const ScRange& rBlock ) { - if (!rDoc.GetDocumentShell()) - return; - tools::Rectangle aBound( Point(), pDev->GetOutputSize() ); //! use size from clip area? - ScViewData aViewData(*rDoc.GetDocumentShell(), nullptr); + ScViewData aViewData(rDocSh, nullptr); aViewData.SetTabNo( rBlock.aEnd.Tab() ); aViewData.SetScreen( rBlock.aStart.Col(), rBlock.aStart.Row(), rBlock.aEnd.Col(), rBlock.aEnd.Row() ); - ScPrintFunc::DrawToDev( rDoc, pDev, nPrintFactor, aBound, aViewData, false/*bMetaFile*/ ); + ScPrintFunc::DrawToDev( rDocSh.GetDocument(), pDev, nPrintFactor, aBound, aViewData, false/*bMetaFile*/ ); } ScTransferObj::ScTransferObj( const std::shared_ptr<ScDocument>& pClipDoc, TransferableObjectDescriptor aDesc ) : @@ -437,7 +434,8 @@ bool ScTransferObj::GetData( const datatransfer::DataFlavor& rFlavor, const OUSt pVirtDev->SetOutputSizePixel(aPixelSize); - PaintToDev( pVirtDev, *m_pDoc, 1.0, aReducedBlock ); + InitDocShell(true); + PaintToDev( pVirtDev, *m_aDocShellRef, 1.0, aReducedBlock ); pVirtDev->SetMapMode( MapMode( MapUnit::MapPixel, Point(), aScale, aScale ) ); BitmapEx aBmp( pVirtDev->GetBitmap( Point(), pVirtDev->GetOutputSize() ) ); diff --git a/sc/source/ui/inc/transobj.hxx b/sc/source/ui/inc/transobj.hxx index 4ad4a93be7f7..d84f5cb3e0df 100644 --- a/sc/source/ui/inc/transobj.hxx +++ b/sc/source/ui/inc/transobj.hxx @@ -58,7 +58,7 @@ private: static void StripRefs( ScDocument& rDoc, SCCOL nStartX, SCROW nStartY, SCCOL nEndX, SCROW nEndY, ScDocument& rDestDoc ); - static void PaintToDev( OutputDevice* pDev, ScDocument& rDoc, double nPrintFactor, + static void PaintToDev( OutputDevice* pDev, ScDocShell& rDocSh, double nPrintFactor, const ScRange& rBlock ); static void GetAreaSize( const ScDocument& rDoc, SCTAB nTab1, SCTAB nTab2, SCROW& nRow, SCCOL& nCol );