diff --git a/sd/source/ui/tools/PreviewRenderer.cxx b/sd/source/ui/tools/PreviewRenderer.cxx index 9a355aa148e2..64b17f0ab7a1 100644 --- a/sd/source/ui/tools/PreviewRenderer.cxx +++ b/sd/source/ui/tools/PreviewRenderer.cxx @@ -274,16 +274,28 @@ bool PreviewRenderer::Initialize ( if (pPageView == NULL) return false; - // Set background color of page view and outliner. - svtools::ColorConfig aColorConfig; - const Color aPageBackgroundColor(pPage->GetPageBackgroundColor(pPageView)); - pPageView->SetApplicationBackgroundColor(aPageBackgroundColor); - SdrOutliner& rOutliner (pDocument->GetDrawOutliner(NULL)); - rOutliner.SetBackgroundColor(aPageBackgroundColor); + // #i121224# No need to set SetApplicationBackgroundColor (which is the color + // of the area 'behind' the page (formally called 'Wiese') since the page previews + // produced exactly cover the page's area, so it would never be visible. What + // needs to be set is the ApplicationDocumentColor which is derived from + // svtools::DOCCOLOR normally + Color aApplicationDocumentColor; + + if (pPageView->GetApplicationDocumentColor() == COL_AUTO) + { + svtools::ColorConfig aColorConfig; + aApplicationDocumentColor = aColorConfig.GetColorValue( svtools::DOCCOLOR ).nColor; + } + else + { + aApplicationDocumentColor = pPageView->GetApplicationDocumentColor(); + } + + pPageView->SetApplicationDocumentColor(aApplicationDocumentColor); + SdrOutliner& rOutliner(pDocument->GetDrawOutliner(NULL)); + rOutliner.SetBackgroundColor(aApplicationDocumentColor); rOutliner.SetDefaultLanguage(pDocument->GetLanguage(EE_CHAR_LANGUAGE)); - mpView->SetApplicationBackgroundColor( - Color(aColorConfig.GetColorValue(svtools::APPBACKGROUND).nColor)); - mpPreviewDevice->SetBackground(Wallpaper(aPageBackgroundColor)); + mpPreviewDevice->SetBackground(Wallpaper(aApplicationDocumentColor)); mpPreviewDevice->Erase(); return true;