diff options
author | Caolán McNamara <caolanm@redhat.com> | 2022-11-08 11:33:38 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2022-11-08 14:52:43 +0100 |
commit | 000a05339b4d7d25aea063a16b7a01ca9080978f (patch) | |
tree | 858eb6660b2266fb903ade054aeaf343a0746009 /sd/source | |
parent | a879fd3c9c0aa3d5414fcac99431b2681959c7ba (diff) |
Resolves: tdf#148140 get text auto color right in impress edit mode
Change-Id: I2695c86e9b749a4c38920af6d33e8e89f8ea3c62
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142426
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sd/source')
-rw-r--r-- | sd/source/ui/view/sdview.cxx | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/sd/source/ui/view/sdview.cxx b/sd/source/ui/view/sdview.cxx index c92ee1113e3c..3c5d190532fe 100644 --- a/sd/source/ui/view/sdview.cxx +++ b/sd/source/ui/view/sdview.cxx @@ -449,6 +449,20 @@ void ViewRedirector::createRedirectedPrimitive2DSequence( } } +namespace +{ + void setOutlinerBgFromPage(::Outliner& rOutl, SdrPageView& rPgView, bool bScreenDisplay) + { + SdPage* pPage = static_cast<SdPage*>(rPgView.GetPage()); + if (pPage) + { + // #i75566# Name change GetBackgroundColor -> GetPageBackgroundColor and + // hint value if screen display. Only then the AutoColor mechanisms shall be applied + rOutl.SetBackgroundColor(pPage->GetPageBackgroundColor(&rPgView, bScreenDisplay)); + } + } +} + /** * The event will be forwarded to the View */ @@ -476,9 +490,7 @@ void View::CompleteRedraw(OutputDevice* pOutDev, const vcl::Region& rReg, sdr::c || (OUTDEV_PDF == pOutDev->GetOutDevType()))) bScreenDisplay = false; - // #i75566# Name change GetBackgroundColor -> GetPageBackgroundColor and - // hint value if screen display. Only then the AutoColor mechanisms shall be applied - rOutl.SetBackgroundColor( pPage->GetPageBackgroundColor(pPgView, bScreenDisplay) ); + setOutlinerBgFromPage(rOutl, *pPgView, bScreenDisplay); } } @@ -724,7 +736,11 @@ bool View::SdrBeginTextEdit( } else { - pObj->setSuitableOutlinerBg(*pOL); + // tdf#148140 Set the background to determine autocolor. + // Use any explicit bg with fallback to underlying page if + // none found + if (!pObj->setSuitableOutlinerBg(*pOL) && pPV) + setOutlinerBgFromPage(*pOL, *pPV, true); } } |