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 );
 

Reply via email to