summaryrefslogtreecommitdiff
path: root/sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2021-01-18 18:27:19 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-05-17 12:56:51 +0200
commit9090dc1f3b27195f5defd35586ac79357992be21 (patch)
treed39f4b624ae337d5c9ce76eba8521b76e53afa05 /sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx
parentc8cf2e0e088b74afa52564945a9c005b3b86bf7e (diff)
split OutputDevice from Window
as part of a longer-term goal of doing our widget rendering only inside a top-level render- context. I moved all of the OutputDevice-related code that existed in vcl::Window into a new subclass of OutputDevice called WindowOutputDevice. Notes for further work (*) not sure why we are getting an 1x1 surface in SvpSalGraphics::releaseCairoContext, but to fix it I clamp the size there (*) might have to dump VCLXDevice, and move it's code down into VCLXWindow and VCLXVirtualDevice (*) can we remove use of VCLXDevice in other places, in favour of just talking to the VCL code? Change-Id: I105946377f5322677d6f7d0c1c23847178a720b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113204 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx')
-rw-r--r--sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx8
1 files changed, 4 insertions, 4 deletions
diff --git a/sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx b/sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx
index 4ae4ecdeeb60..9c2ce78303c7 100644
--- a/sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx
+++ b/sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx
@@ -161,7 +161,7 @@ private:
LayeredDevice::LayeredDevice (const VclPtr<sd::Window>& pTargetWindow)
: mpTargetWindow(pTargetWindow),
mpLayers(new LayerContainer()),
- mpBackBuffer(VclPtr<VirtualDevice>::Create(*mpTargetWindow)),
+ mpBackBuffer(VclPtr<VirtualDevice>::Create(*mpTargetWindow->GetOutDev())),
maSavedMapMode(pTargetWindow->GetMapMode())
{
mpBackBuffer->SetOutputSizePixel(mpTargetWindow->GetSizePixel());
@@ -273,7 +273,7 @@ void LayeredDevice::RepaintRectangle (const ::tools::Rectangle& rRepaintRectangl
else if (mpLayers->size() == 1)
{
// Just copy the main layer into the target device.
- (*mpLayers)[0]->Repaint(*mpTargetWindow, rRepaintRectangle);
+ (*mpLayers)[0]->Repaint(*mpTargetWindow->GetOutDev(), rRepaintRectangle);
}
else
{
@@ -285,7 +285,7 @@ void LayeredDevice::RepaintRectangle (const ::tools::Rectangle& rRepaintRectangl
{
it->Repaint(*mpBackBuffer, rRepaintRectangle);
}
- DeviceCopy(*mpTargetWindow, *mpBackBuffer, rRepaintRectangle);
+ DeviceCopy(*mpTargetWindow->GetOutDev(), *mpBackBuffer, rRepaintRectangle);
}
}
@@ -387,7 +387,7 @@ void Layer::Initialize (sd::Window *pTargetWindow)
#else
if ( ! mpLayerDevice)
{
- mpLayerDevice.disposeAndReset(VclPtr<VirtualDevice>::Create(*pTargetWindow));
+ mpLayerDevice.disposeAndReset(VclPtr<VirtualDevice>::Create(*pTargetWindow->GetOutDev()));
mpLayerDevice->SetOutputSizePixel(pTargetWindow->GetSizePixel());
}
#endif