summaryrefslogtreecommitdiff
path: root/cui/source/tabpages
diff options
context:
space:
mode:
Diffstat (limited to 'cui/source/tabpages')
-rw-r--r--cui/source/tabpages/backgrnd.cxx16
1 files changed, 14 insertions, 2 deletions
diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx
index 15b6d10f0c4e..3553df854308 100644
--- a/cui/source/tabpages/backgrnd.cxx
+++ b/cui/source/tabpages/backgrnd.cxx
@@ -844,8 +844,20 @@ sal_Bool SvxBackgroundTabPage::FillItemSet( SfxItemSet& rCoreSet )
}
else // Brush <-> Bitmap changed!
{
- if ( bIsBrush )
+ if (bIsBrush || bIsGradient)
+ {
rCoreSet.Put( SvxBrushItem( aBgdColor, nWhich ) );
+ if (bIsGradient)
+ {
+ // Handle XFILL_BITMAP -> XFILL_GRADIENT
+ XFillStyleItem aFillStyleItem(((const XFillStyleItem&)m_rXFillSet.Get(XATTR_FILLSTYLE)).GetValue(), GetWhich(SID_ATTR_FILL_STYLE));
+ rCoreSet.Put(aFillStyleItem);
+
+ const XFillGradientItem& rFillGradientItem = (const XFillGradientItem&)m_rXFillSet.Get(XATTR_FILLGRADIENT);
+ XFillGradientItem aFillGradientItem(rFillGradientItem.GetName(), rFillGradientItem.GetGradientValue(), GetWhich(SID_ATTR_FILL_GRADIENT));
+ rCoreSet.Put(aFillGradientItem);
+ }
+ }
else
{
SvxBrushItem* pTmpBrush = 0;
@@ -873,7 +885,7 @@ sal_Bool SvxBackgroundTabPage::FillItemSet( SfxItemSet& rCoreSet )
delete pTmpBrush;
}
}
- bModified = ( bIsBrush || m_pBtnLink->IsChecked() || bIsGraphicValid );
+ bModified = ( bIsBrush || bIsGradient || m_pBtnLink->IsChecked() || bIsGraphicValid );
}
}
else if ( SID_ATTR_BRUSH_CHAR == nSlot && aBgdColor != Color( COL_WHITE ) )