Blame SOURCES/0001-add-char-highlighting-background-tab-to-graphics-sty.patch

dc0b3e
From 2f3f5298a09c82fba750b61b5fc091af66578772 Mon Sep 17 00:00:00 2001
dc0b3e
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
dc0b3e
Date: Fri, 11 Aug 2017 11:51:09 +0100
dc0b3e
Subject: [PATCH] add char highlighting (background) tab to graphics styles
dc0b3e
 dialog
dc0b3e
dc0b3e
move the SvxBackgroundColorItem<->SvxBrushItem conversion
dc0b3e
dc0b3e
into the dialog itself
dc0b3e
dc0b3e
Change-Id: I83db9f02145a4927257dd5691f82dad1a11eaea6
dc0b3e
dc0b3e
improve scoping a little
dc0b3e
dc0b3e
Change-Id: Ie2e86852f7c4754070d3eb7e8981d674f04a6d80
dc0b3e
(cherry picked from commit a162b21c2b393534a9f6433c9b2b674aaaecf1a7)
dc0b3e
dc0b3e
Change-Id: I2cf3872116ae59051847d73612a2f4f8385d34d8
dc0b3e
---
dc0b3e
 cui/source/inc/backgrnd.hxx               |   1 +
dc0b3e
 cui/source/tabpages/backgrnd.cxx          | 104 +++++++++++++++++++++++-------
dc0b3e
 include/svx/flagsdef.hxx                  |  11 ++--
dc0b3e
 sd/source/ui/dlg/dlgchar.cxx              |   2 +-
dc0b3e
 sd/source/ui/dlg/tabtempl.cxx             |   7 ++
dc0b3e
 sd/source/ui/func/fuchar.cxx              |  26 +-------
dc0b3e
 sd/source/ui/inc/tabtempl.hxx             |   1 +
dc0b3e
 sd/uiconfig/simpress/ui/templatedialog.ui |  14 ++++
dc0b3e
 8 files changed, 113 insertions(+), 53 deletions(-)
dc0b3e
dc0b3e
diff --git a/cui/source/inc/backgrnd.hxx b/cui/source/inc/backgrnd.hxx
dc0b3e
index d2663f3..cd7ab4f 100644
dc0b3e
--- a/cui/source/inc/backgrnd.hxx
dc0b3e
+++ b/cui/source/inc/backgrnd.hxx
dc0b3e
@@ -107,6 +107,7 @@ private:
dc0b3e
     bool        bIsGraphicValid     : 1;
dc0b3e
     bool        bLinkOnly           : 1;
dc0b3e
     bool        bHighlighting       : 1;
dc0b3e
+    bool        bCharBackColor      : 1;
dc0b3e
     bool        m_bColorSelected    : 1;
dc0b3e
     Graphic     aBgdGraphic;
dc0b3e
     OUString    aBgdGraphicPath;
dc0b3e
diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx
dc0b3e
index 43d8fdd..83aa3c7 100644
dc0b3e
--- a/cui/source/tabpages/backgrnd.cxx
dc0b3e
+++ b/cui/source/tabpages/backgrnd.cxx
dc0b3e
@@ -38,6 +38,7 @@
dc0b3e
 #include <editeng/eerdll.hxx>
dc0b3e
 
dc0b3e
 #include <editeng/brushitem.hxx>
dc0b3e
+#include <editeng/colritem.hxx>
dc0b3e
 #include "backgrnd.hxx"
dc0b3e
 
dc0b3e
 #include <svx/xtable.hxx>
dc0b3e
@@ -330,6 +331,7 @@ SvxBackgroundTabPage::SvxBackgroundTabPage(vcl::Window* pParent, const SfxItemSe
dc0b3e
     , bIsGraphicValid(false)
dc0b3e
     , bLinkOnly(false)
dc0b3e
     , bHighlighting(false)
dc0b3e
+    , bCharBackColor(false)
dc0b3e
     , m_bColorSelected(false)
dc0b3e
     , pPageImpl(new SvxBackgroundPage_Impl)
dc0b3e
     , pImportDlg(nullptr)
dc0b3e
@@ -460,7 +462,7 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet )
dc0b3e
 
dc0b3e
 
dc0b3e
     // get and evaluate Input-BrushItem
dc0b3e
-    const SvxBrushItem* pBgdAttr = nullptr;
dc0b3e
+    bool bBrushItemSet = false;
dc0b3e
     sal_uInt16 nSlot = SID_ATTR_BRUSH;
dc0b3e
     const SfxPoolItem* pItem;
dc0b3e
     sal_uInt16 nDestValue = USHRT_MAX;
dc0b3e
@@ -488,20 +490,39 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet )
dc0b3e
     {
dc0b3e
         nSlot = SID_ATTR_BRUSH_CHAR;
dc0b3e
     }
dc0b3e
+    else if( bCharBackColor )
dc0b3e
+    {
dc0b3e
+        nSlot = SID_ATTR_CHAR_BACK_COLOR;
dc0b3e
+    }
dc0b3e
+
dc0b3e
     //#111173# the destination item is missing when the parent style has been changed
dc0b3e
     if(USHRT_MAX == nDestValue && m_pTblLBox->IsVisible())
dc0b3e
         nDestValue = 0;
dc0b3e
-    sal_uInt16 nWhich = GetWhich( nSlot );
dc0b3e
+    sal_uInt16 nWhich = GetWhich(nSlot);
dc0b3e
+    SvxBrushItem aBgdAttr(nWhich);
dc0b3e
 
dc0b3e
-    if ( rSet->GetItemState( nWhich, false ) >= SfxItemState::DEFAULT )
dc0b3e
-        pBgdAttr = static_cast<const SvxBrushItem*>(&( rSet->Get( nWhich ) ));
dc0b3e
+    if (rSet->GetItemState( nWhich, false ) >= SfxItemState::DEFAULT)
dc0b3e
+    {
dc0b3e
+        if (!bCharBackColor)
dc0b3e
+            aBgdAttr = static_cast<const SvxBrushItem&>(rSet->Get(nWhich));
dc0b3e
+        else
dc0b3e
+        {
dc0b3e
+            // EE_CHAR_BKGCOLOR is SvxBackgroundColorItem, but char background tabpage
dc0b3e
+            // can only work with SvxBrushItems
dc0b3e
+            // extract Color out of SvxBackColorItem
dc0b3e
+            Color aBackColor = static_cast<const SvxBackgroundColorItem&>(rSet->Get(nWhich)).GetValue();
dc0b3e
+            // make new SvxBrushItem with this Color
dc0b3e
+            aBgdAttr = SvxBrushItem(aBackColor, SID_ATTR_BRUSH_CHAR);
dc0b3e
+        }
dc0b3e
+        bBrushItemSet = true;
dc0b3e
+    }
dc0b3e
 
dc0b3e
     m_pBtnTile->Check();
dc0b3e
 
dc0b3e
-    if ( pBgdAttr )
dc0b3e
+    if (bBrushItemSet)
dc0b3e
     {
dc0b3e
-        FillControls_Impl(*pBgdAttr, aUserData);
dc0b3e
-        aBgdColor = const_cast<SvxBrushItem*>(pBgdAttr)->GetColor();
dc0b3e
+        FillControls_Impl(aBgdAttr, aUserData);
dc0b3e
+        aBgdColor = const_cast<SvxBrushItem&>(aBgdAttr).GetColor();
dc0b3e
     }
dc0b3e
     else
dc0b3e
     {
dc0b3e
@@ -536,22 +557,22 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet )
dc0b3e
             nWhich = GetWhich( SID_ATTR_BRUSH );
dc0b3e
             if ( rSet->GetItemState( nWhich, false ) >= SfxItemState::DEFAULT )
dc0b3e
             {
dc0b3e
-                pBgdAttr = static_cast<const SvxBrushItem*>(&( rSet->Get( nWhich ) ));
dc0b3e
-                pTableBck_Impl->pCellBrush = new SvxBrushItem(*pBgdAttr);
dc0b3e
+                aBgdAttr = static_cast<const SvxBrushItem&>(rSet->Get(nWhich));
dc0b3e
+                pTableBck_Impl->pCellBrush = new SvxBrushItem(aBgdAttr);
dc0b3e
             }
dc0b3e
             pTableBck_Impl->nCellWhich = nWhich;
dc0b3e
 
dc0b3e
             if ( rSet->GetItemState( SID_ATTR_BRUSH_ROW, false ) >= SfxItemState::DEFAULT )
dc0b3e
             {
dc0b3e
-                pBgdAttr = static_cast<const SvxBrushItem*>(&( rSet->Get( SID_ATTR_BRUSH_ROW ) ));
dc0b3e
-                pTableBck_Impl->pRowBrush = new SvxBrushItem(*pBgdAttr);
dc0b3e
+                aBgdAttr = static_cast<const SvxBrushItem&>(rSet->Get(SID_ATTR_BRUSH_ROW));
dc0b3e
+                pTableBck_Impl->pRowBrush = new SvxBrushItem(aBgdAttr);
dc0b3e
             }
dc0b3e
             pTableBck_Impl->nRowWhich = SID_ATTR_BRUSH_ROW;
dc0b3e
 
dc0b3e
             if ( rSet->GetItemState( SID_ATTR_BRUSH_TABLE, false ) >= SfxItemState::DEFAULT )
dc0b3e
             {
dc0b3e
-                pBgdAttr = static_cast<const SvxBrushItem*>(&( rSet->Get( SID_ATTR_BRUSH_TABLE ) ));
dc0b3e
-                pTableBck_Impl->pTableBrush = new SvxBrushItem(*pBgdAttr);
dc0b3e
+                aBgdAttr = static_cast<const SvxBrushItem&>(rSet->Get(SID_ATTR_BRUSH_TABLE));
dc0b3e
+                pTableBck_Impl->pTableBrush = new SvxBrushItem(aBgdAttr);
dc0b3e
             }
dc0b3e
             pTableBck_Impl->nTableWhich = SID_ATTR_BRUSH_TABLE;
dc0b3e
 
dc0b3e
@@ -563,8 +584,22 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet )
dc0b3e
             nWhich = GetWhich( SID_ATTR_BRUSH_CHAR );
dc0b3e
             if ( rSet->GetItemState( nWhich, false ) >= SfxItemState::DEFAULT )
dc0b3e
             {
dc0b3e
-                pBgdAttr = static_cast<const SvxBrushItem*>(&( rSet->Get( nWhich ) ));
dc0b3e
-                pHighlighting.reset(new SvxBrushItem(*pBgdAttr));
dc0b3e
+                aBgdAttr = static_cast<const SvxBrushItem&>(rSet->Get(nWhich));
dc0b3e
+                pHighlighting.reset(new SvxBrushItem(aBgdAttr));
dc0b3e
+            }
dc0b3e
+        }
dc0b3e
+        else if( bCharBackColor )
dc0b3e
+        {
dc0b3e
+            nWhich = GetWhich(SID_ATTR_CHAR_BACK_COLOR);
dc0b3e
+            if ( rSet->GetItemState( nWhich, false ) >= SfxItemState::DEFAULT )
dc0b3e
+            {
dc0b3e
+                // EE_CHAR_BKGCOLOR is SvxBackgroundColorItem, but char background tabpage
dc0b3e
+                // can only work with SvxBrushItems
dc0b3e
+                // extract Color out of SvxBackColorItem
dc0b3e
+                Color aBackColor = static_cast<const SvxBackgroundColorItem&>(rSet->Get(nWhich)).GetValue();
dc0b3e
+                // make new SvxBrushItem with this Color
dc0b3e
+                aBgdAttr = SvxBrushItem(aBackColor, SID_ATTR_BRUSH_CHAR);
dc0b3e
+                pHighlighting.reset(new SvxBrushItem(aBgdAttr));
dc0b3e
             }
dc0b3e
         }
dc0b3e
     }
dc0b3e
@@ -645,6 +680,7 @@ bool SvxBackgroundTabPage::FillItemSet( SfxItemSet* rCoreSet )
dc0b3e
         return FillItemSetWithWallpaperItem( *rCoreSet, SID_VIEW_FLD_PIC );
dc0b3e
 
dc0b3e
     bool bModified = false;
dc0b3e
+    bool bCompareOldBrush = true;
dc0b3e
     sal_uInt16 nSlot = SID_ATTR_BRUSH;
dc0b3e
 
dc0b3e
     if ( m_pTblLBox->IsVisible() )
dc0b3e
@@ -666,15 +702,21 @@ bool SvxBackgroundTabPage::FillItemSet( SfxItemSet* rCoreSet )
dc0b3e
     {
dc0b3e
         nSlot = SID_ATTR_BRUSH_CHAR;
dc0b3e
     }
dc0b3e
-    sal_uInt16 nWhich = GetWhich( nSlot );
dc0b3e
+    else if( bCharBackColor )
dc0b3e
+    {
dc0b3e
+        nSlot = SID_ATTR_CHAR_BACK_COLOR;
dc0b3e
+        bCompareOldBrush = false;
dc0b3e
+    }
dc0b3e
 
dc0b3e
-    const SfxPoolItem* pOld = GetOldItem( *rCoreSet, nSlot );
dc0b3e
-    SfxItemState eOldItemState = rCoreSet->GetItemState(nSlot, false);
dc0b3e
-    const SfxItemSet& rOldSet = GetItemSet();
dc0b3e
+    sal_uInt16 nWhich = GetWhich( nSlot );
dc0b3e
 
dc0b3e
-    if ( pOld )
dc0b3e
+    const SfxPoolItem* pOld = GetOldItem(*rCoreSet, nSlot);
dc0b3e
+    if (pOld && bCompareOldBrush)
dc0b3e
     {
dc0b3e
+        SfxItemState eOldItemState = rCoreSet->GetItemState(nSlot, false);
dc0b3e
+        const SfxItemSet& rOldSet = GetItemSet();
dc0b3e
         const SvxBrushItem& rOldItem    = static_cast<const SvxBrushItem&>(*pOld);
dc0b3e
+
dc0b3e
         SvxGraphicPosition  eOldPos     = rOldItem.GetGraphicPos();
dc0b3e
         const bool          bIsBrush    = ( drawing::FillStyle_SOLID == lcl_getFillStyle(m_pLbSelect) );
dc0b3e
 
dc0b3e
@@ -775,6 +817,22 @@ bool SvxBackgroundTabPage::FillItemSet( SfxItemSet* rCoreSet )
dc0b3e
             bModified = ( bIsBrush || m_pBtnLink->IsChecked() || bIsGraphicValid );
dc0b3e
         }
dc0b3e
     }
dc0b3e
+    else if (pOld && SID_ATTR_CHAR_BACK_COLOR == nSlot)
dc0b3e
+    {
dc0b3e
+        SfxItemState eOldItemState = rCoreSet->GetItemState(nSlot, false);
dc0b3e
+        const SfxItemSet& rOldSet = GetItemSet();
dc0b3e
+        const SvxBackgroundColorItem& rOldItem = static_cast<const SvxBackgroundColorItem&>(*pOld);
dc0b3e
+
dc0b3e
+        // Brush-treatment:
dc0b3e
+        if ( rOldItem.GetValue() != aBgdColor ||
dc0b3e
+             (SfxItemState::DEFAULT >= eOldItemState && m_bColorSelected))
dc0b3e
+        {
dc0b3e
+            bModified = true;
dc0b3e
+            rCoreSet->Put(SvxBackgroundColorItem(aBgdColor, nWhich));
dc0b3e
+        }
dc0b3e
+        else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) )
dc0b3e
+            rCoreSet->ClearItem( nWhich );
dc0b3e
+    }
dc0b3e
     else if ( SID_ATTR_BRUSH_CHAR == nSlot && aBgdColor != Color( COL_WHITE ) )
dc0b3e
     {
dc0b3e
         rCoreSet->Put( SvxBrushItem( aBgdColor, nWhich ) );
dc0b3e
@@ -1527,10 +1585,12 @@ void SvxBackgroundTabPage::PageCreated(const SfxAllItemSet& aSet)
dc0b3e
         {
dc0b3e
             ShowSelector();
dc0b3e
         }
dc0b3e
-        if ( nFlags & SvxBackgroundTabFlags::SHOW_HIGHLIGHTING )
dc0b3e
+        if ((nFlags & SvxBackgroundTabFlags::SHOW_HIGHLIGHTING) ||
dc0b3e
+            (nFlags & SvxBackgroundTabFlags::SHOW_CHAR_BKGCOLOR))
dc0b3e
         {
dc0b3e
             m_pBackGroundColorLabelFT->SetText(CUI_RES(RID_SVXSTR_CHARNAME_HIGHLIGHTING));
dc0b3e
-            bHighlighting = true;
dc0b3e
+            bHighlighting = bool(nFlags & SvxBackgroundTabFlags::SHOW_HIGHLIGHTING);
dc0b3e
+            bCharBackColor = bool(nFlags & SvxBackgroundTabFlags::SHOW_CHAR_BKGCOLOR);
dc0b3e
         }
dc0b3e
     }
dc0b3e
 }
dc0b3e
diff --git a/include/svx/flagsdef.hxx b/include/svx/flagsdef.hxx
dc0b3e
index 0207a0e..30b1ff4 100644
dc0b3e
--- a/include/svx/flagsdef.hxx
dc0b3e
+++ b/include/svx/flagsdef.hxx
dc0b3e
@@ -39,14 +39,15 @@ namespace o3tl
dc0b3e
 // flags for SvxBackgroundTabPage
dc0b3e
 enum class SvxBackgroundTabFlags
dc0b3e
 {
dc0b3e
-    NONE                = 0x00,
dc0b3e
-    SHOW_SELECTOR       = 0x01,
dc0b3e
-    SHOW_TBLCTL         = 0x08,
dc0b3e
-    SHOW_HIGHLIGHTING   = 0x10,
dc0b3e
+    NONE                 = 0x00,
dc0b3e
+    SHOW_SELECTOR        = 0x01,
dc0b3e
+    SHOW_TBLCTL          = 0x08,
dc0b3e
+    SHOW_HIGHLIGHTING    = 0x10,
dc0b3e
+    SHOW_CHAR_BKGCOLOR   = 0x20,
dc0b3e
 };
dc0b3e
 namespace o3tl
dc0b3e
 {
dc0b3e
-    template<> struct typed_flags<SvxBackgroundTabFlags> : is_typed_flags<SvxBackgroundTabFlags, 0x19> {};
dc0b3e
+    template<> struct typed_flags<SvxBackgroundTabFlags> : is_typed_flags<SvxBackgroundTabFlags, 0x39> {};
dc0b3e
 }
dc0b3e
 
dc0b3e
 // flags for SvxBorderTabPage
dc0b3e
diff --git a/sd/source/ui/dlg/dlgchar.cxx b/sd/source/ui/dlg/dlgchar.cxx
dc0b3e
index bcf4437..cb37af4 100644
dc0b3e
--- a/sd/source/ui/dlg/dlgchar.cxx
dc0b3e
+++ b/sd/source/ui/dlg/dlgchar.cxx
dc0b3e
@@ -65,7 +65,7 @@ void SdCharDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
dc0b3e
     }
dc0b3e
     else if (nId == mnCharBackground)
dc0b3e
     {
dc0b3e
-        aSet.Put(SfxUInt32Item(SID_FLAG_TYPE,static_cast<sal_uInt32>(SvxBackgroundTabFlags::SHOW_HIGHLIGHTING)));
dc0b3e
+        aSet.Put(SfxUInt32Item(SID_FLAG_TYPE,static_cast<sal_uInt32>(SvxBackgroundTabFlags::SHOW_CHAR_BKGCOLOR)));
dc0b3e
         rPage.PageCreated(aSet);
dc0b3e
     }
dc0b3e
 }
dc0b3e
diff --git a/sd/source/ui/dlg/tabtempl.cxx b/sd/source/ui/dlg/tabtempl.cxx
dc0b3e
index 17e962b..9042bf5 100644
dc0b3e
--- a/sd/source/ui/dlg/tabtempl.cxx
dc0b3e
+++ b/sd/source/ui/dlg/tabtempl.cxx
dc0b3e
@@ -71,6 +71,7 @@ SdTabTemplateDlg::SdTabTemplateDlg( vcl::Window* pParent,
dc0b3e
     , m_nFontId(0)
dc0b3e
     , m_nFontEffectId(0)
dc0b3e
     , m_nIndentsId(0)
dc0b3e
+    , m_nBackgroundId(0)
dc0b3e
     , m_nTextId(0)
dc0b3e
     , m_nAnimationId(0)
dc0b3e
     , m_nDimensionId(0)
dc0b3e
@@ -88,6 +89,7 @@ SdTabTemplateDlg::SdTabTemplateDlg( vcl::Window* pParent,
dc0b3e
     m_nFontId = AddTabPage("font", RID_SVXPAGE_CHAR_NAME);
dc0b3e
     m_nFontEffectId = AddTabPage("fonteffect", RID_SVXPAGE_CHAR_EFFECTS);
dc0b3e
     m_nIndentsId = AddTabPage("indents", RID_SVXPAGE_STD_PARAGRAPH);
dc0b3e
+    m_nBackgroundId = AddTabPage("background", RID_SVXPAGE_BACKGROUND);
dc0b3e
     m_nTextId = AddTabPage("text", RID_SVXPAGE_TEXTATTR);
dc0b3e
     m_nAnimationId = AddTabPage("animation", RID_SVXPAGE_TEXTANIMATION);
dc0b3e
     m_nDimensionId = AddTabPage("dimensioning", RID_SVXPAGE_MEASURE);
dc0b3e
@@ -149,6 +151,11 @@ void SdTabTemplateDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
dc0b3e
     {
dc0b3e
         rPage.PageCreated(aSet);
dc0b3e
     }
dc0b3e
+    else if (nId == m_nBackgroundId)
dc0b3e
+    {
dc0b3e
+        aSet.Put(SfxUInt32Item(SID_FLAG_TYPE,static_cast<sal_uInt32>(SvxBackgroundTabFlags::SHOW_CHAR_BKGCOLOR)));
dc0b3e
+        rPage.PageCreated(aSet);
dc0b3e
+    }
dc0b3e
     else if (nId == m_nTextId)
dc0b3e
     {
dc0b3e
         rPage.PageCreated(aSet);
dc0b3e
diff --git a/sd/source/ui/func/fuchar.cxx b/sd/source/ui/func/fuchar.cxx
dc0b3e
index f5601b3..5ffcfa0 100644
dc0b3e
--- a/sd/source/ui/func/fuchar.cxx
dc0b3e
+++ b/sd/source/ui/func/fuchar.cxx
dc0b3e
@@ -68,33 +68,9 @@ void FuChar::DoExecute( SfxRequest& rReq )
dc0b3e
         SfxItemSet aEditAttr( mpDoc->GetPool() );
dc0b3e
         mpView->GetAttributes( aEditAttr );
dc0b3e
 
dc0b3e
-        static const sal_uInt16 aRanges[] =
dc0b3e
-        {
dc0b3e
-            EE_ITEMS_START, EE_ITEMS_END,
dc0b3e
-            SID_ATTR_BRUSH_CHAR, SID_ATTR_BRUSH_CHAR,
dc0b3e
-            0
dc0b3e
-        };
dc0b3e
-
dc0b3e
-        SfxItemSet aNewAttr( mpViewShell->GetPool(),
dc0b3e
-                                aRanges );
dc0b3e
+        SfxItemSet aNewAttr(mpViewShell->GetPool(), EE_ITEMS_START, EE_ITEMS_END);
dc0b3e
         aNewAttr.Put( aEditAttr, false );
dc0b3e
 
dc0b3e
-        // EE_CHAR_BKGCOLOR is SvxBackgroundColorItem, but char background tabpage
dc0b3e
-        // can only work with SvxBrushItems (it requires major undertaking to have
dc0b3e
-        // it support anything else). Do the following then:
dc0b3e
-        const SfxPoolItem* pItem;
dc0b3e
-        if ( aNewAttr.GetItemState( EE_CHAR_BKGCOLOR, true, &pItem ) == SfxItemState::SET )
dc0b3e
-        {
dc0b3e
-            // extract Color outta SvxBackColorItem
dc0b3e
-            Color aBackColor = static_cast<const SvxBackgroundColorItem*>(pItem)->GetValue();
dc0b3e
-            // make new SvxBrushItem with this Color
dc0b3e
-            SvxBrushItem aBrushItem( aBackColor, SID_ATTR_BRUSH_CHAR );
dc0b3e
-
dc0b3e
-            aNewAttr.ClearItem( EE_CHAR_BKGCOLOR );
dc0b3e
-            // and stick it into the set
dc0b3e
-            aNewAttr.Put( aBrushItem );
dc0b3e
-        }
dc0b3e
-
dc0b3e
         SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create();
dc0b3e
         ScopedVclPtr<SfxAbstractTabDialog> pDlg(pFact ? pFact->CreateSdTabCharDialog(mpViewShell->GetActiveWindow(), &aNewAttr, mpDoc->GetDocSh() ) : nullptr);
dc0b3e
         sal_uInt16 nResult = RET_CANCEL;
dc0b3e
diff --git a/sd/source/ui/inc/tabtempl.hxx b/sd/source/ui/inc/tabtempl.hxx
dc0b3e
index d5c2f5e..bc00417 100644
dc0b3e
--- a/sd/source/ui/inc/tabtempl.hxx
dc0b3e
+++ b/sd/source/ui/inc/tabtempl.hxx
dc0b3e
@@ -50,6 +50,7 @@ private:
dc0b3e
     sal_uInt16 m_nFontId;
dc0b3e
     sal_uInt16 m_nFontEffectId;
dc0b3e
     sal_uInt16 m_nIndentsId;
dc0b3e
+    sal_uInt16 m_nBackgroundId;
dc0b3e
     sal_uInt16 m_nTextId;
dc0b3e
     sal_uInt16 m_nAnimationId;
dc0b3e
     sal_uInt16 m_nDimensionId;
dc0b3e
diff --git a/sd/uiconfig/simpress/ui/templatedialog.ui b/sd/uiconfig/simpress/ui/templatedialog.ui
dc0b3e
index 961a0bb..380f9f0 100644
dc0b3e
--- a/sd/uiconfig/simpress/ui/templatedialog.ui
dc0b3e
+++ b/sd/uiconfig/simpress/ui/templatedialog.ui
dc0b3e
@@ -204,6 +204,20 @@
dc0b3e
               <placeholder/>
dc0b3e
             </child>
dc0b3e
             <child type="tab">
dc0b3e
+              <object class="GtkLabel" id="background">
dc0b3e
+                <property name="visible">True</property>
dc0b3e
+                <property name="can_focus">False</property>
dc0b3e
+                <property name="label" translatable="yes" context="templatedialog|background">Highlighting</property>
dc0b3e
+              </object>
dc0b3e
+              <packing>
dc0b3e
+                <property name="position">6</property>
dc0b3e
+                <property name="tab_fill">False</property>
dc0b3e
+              </packing>
dc0b3e
+            </child>
dc0b3e
+            <child>
dc0b3e
+              <placeholder/>
dc0b3e
+            </child>
dc0b3e
+            <child type="tab">
dc0b3e
               <object class="GtkLabel" id="indents">
dc0b3e
                 <property name="visible">True</property>
dc0b3e
                 <property name="can_focus">False</property>
dc0b3e
-- 
dc0b3e
2.9.4
dc0b3e