summaryrefslogtreecommitdiff
path: root/sw/source/core/view/pagepreviewlayout.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core/view/pagepreviewlayout.cxx')
-rw-r--r--sw/source/core/view/pagepreviewlayout.cxx24
1 files changed, 24 insertions, 0 deletions
diff --git a/sw/source/core/view/pagepreviewlayout.cxx b/sw/source/core/view/pagepreviewlayout.cxx
index f088700f8892..069c07be107c 100644
--- a/sw/source/core/view/pagepreviewlayout.cxx
+++ b/sw/source/core/view/pagepreviewlayout.cxx
@@ -986,12 +986,36 @@ SwTwips SwPagePreviewLayout::GetWinPagesScrollAmount(
// methods to paint page preview layout
+namespace
+{
+/// Similar to RenderContextGuard, but does not touch the draw view.
+class PreviewRenderContextGuard
+{
+ VclPtr<vcl::RenderContext> m_pOriginalValue;
+ SwViewShell& m_rShell;
+
+public:
+ PreviewRenderContextGuard(SwViewShell& rShell, vcl::RenderContext* pValue)
+ : m_pOriginalValue(rShell.GetOut()),
+ m_rShell(rShell)
+ {
+ m_rShell.SetOut(pValue);
+ }
+
+ ~PreviewRenderContextGuard()
+ {
+ m_rShell.SetOut(m_pOriginalValue);
+ }
+};
+}
+
/** paint prepared preview
OD 12.12.2002 #103492#
*/
bool SwPagePreviewLayout::Paint(vcl::RenderContext& rRenderContext, const Rectangle& rOutRect) const
{
+ PreviewRenderContextGuard aGuard(mrParentViewShell, &rRenderContext);
// check environment and parameters
{
if (!mrParentViewShell.GetWin() && !mrParentViewShell.GetOut()->GetConnectMetaFile())