diff --git a/scribus/ui/smcolorbutton.cpp b/scribus/ui/smcolorbutton.cpp
index 47f55ee41..a675be7ac 100644
--- a/scribus/ui/smcolorbutton.cpp
+++ b/scribus/ui/smcolorbutton.cpp
@@ -30,8 +30,8 @@ void SMColorButton::setColor(const QString name, const double shade)
 	m_pShade = -1;
 	m_pColor = "";
 	parentButton->hide();
+	colorButton->setInfoType(ColorButton::InfoColorModel);
 	colorButton->setColor(name, shade);
-	colorButton->setHasDot(false);
 	colorButton->updatePreview();
 	colorButton->updateFloatingContext();
 }
@@ -46,10 +46,14 @@ void SMColorButton::setColor(const QString name, const double shade, const QStri
 	m_pColor = pName;
 
 	if (isParentValue)
+	{
 		parentButton->hide();
+		colorButton->setInfoType(ColorButton::InfoColorModel);
+	}
 	else
 	{
 		parentButton->show();
+		colorButton->setInfoType(ColorButton::InfoColor);
 	}
 
 	if (m_pColor.isEmpty() || m_pColor == CommonStrings::tr_NoneColor)
@@ -61,7 +65,6 @@ void SMColorButton::setColor(const QString name, const double shade, const QStri
 			colorButton->colorFromName(m_pColor, m_pShade)
 		));
 
-	colorButton->setHasDot(!isParentValue);
 	colorButton->setColor(name, shade);
 	colorButton->updatePreview();
 	colorButton->updateFloatingContext();
@@ -75,7 +78,7 @@ void SMColorButton::styleChanged()
 	if (m_hasParent)
 	{
 		parentButton->show();
-		colorButton->setHasDot(true);
+		colorButton->setInfoType(ColorButton::InfoColor);
 	}
 }
 
@@ -85,10 +88,8 @@ bool SMColorButton::useParentValue()
 	m_useParentValue = false;
 
 	if (ret && m_hasParent)
-	{
 		setColor(m_pColor, m_pShade, m_pColor, m_pShade, true);
-		colorButton->setHasDot(false);
-	}
+
 	return ret;
 }
 
diff --git a/scribus/ui/smcstylewidget.cpp b/scribus/ui/smcstylewidget.cpp
index 8079c917e..7a393b694 100644
--- a/scribus/ui/smcstylewidget.cpp
+++ b/scribus/ui/smcstylewidget.cpp
@@ -23,30 +23,27 @@ SMCStyleWidget::SMCStyleWidget(QWidget *parent)
 {
 	setupUi(this);
 
-	textColor->colorButton->setContext(Context::Text);
-	textColor->colorButton->setIconSize(QSize(20, 20));
-	textColor->colorButton->setApplyColorOnIcon(true);
-	textColor->setColor(CommonStrings::tr_NoneColor);
-	textColor->setText(tr("Color"));
+	textColor->colorButton->setContext(Context::Text);
+	textColor->setColor(CommonStrings::tr_NoneColor);
+	textColor->setText(tr("Color"));
 
-	backgroundColor->colorButton->setContext(Context::TextBackground);
-	backgroundColor->setColor(CommonStrings::tr_NoneColor);
-	backgroundColor->setText(tr("Background"));
+	backgroundColor->colorButton->setContext(Context::TextBackground);
+	backgroundColor->setColor(CommonStrings::tr_NoneColor);
+	backgroundColor->setText(tr("Background"));
 
-	strokeColor->colorButton->setContext(Context::TextOutline);
-	strokeColor->colorButton->setIconSize(QSize(20, 20));
-	strokeColor->setColor(CommonStrings::tr_NoneColor);
-	strokeColor->setText(tr("Stroke"));
-	strokeColor->setEnabled(false);
+	strokeColor->colorButton->setContext(Context::TextOutline);
+	strokeColor->setColor(CommonStrings::tr_NoneColor);
+	strokeColor->setText(tr("Stroke"));
+	strokeColor->setEnabled(false);
 
 	fontfeaturesSetting->resetFontFeatures();
 
 	hyphenCharLineEdit->setMaxLength(1);
 
-	fontFace_->setGuestWidget(fontSizeLabel_);
-
-	iconSetChange();
-
+	fontFace_->setGuestWidget(fontSizeLabel_);
+
+	iconSetChange();
+
 	connect(ScQApp, SIGNAL(iconSetChanged()), this, SLOT(iconSetChange()));
 
 	connect(effects_, SIGNAL(State(int)), this, SLOT(slotColorChange()));
@@ -67,17 +64,18 @@ void SMCStyleWidget::iconSetChange()
 {
 	IconManager& im = IconManager::instance();
 
-	fontSizeLabel_->setPixmap(im.loadPixmap("font-size"));
-	trackingLabel_->setPixmap(im.loadPixmap("character-letter-tracking"));
-	widthSpaceLabel->setPixmap(im.loadPixmap("character-space-width"));
-	baselineOffsetLabel_->setPixmap(im.loadPixmap("character-offset-baseline"));
-	hscaleLabel_->setPixmap(im.loadPixmap("character-scale-width"));
-	vscaleLabel_->setPixmap(im.loadPixmap("character-scale-height"));
-	languageLabel_->setPixmap(im.loadPixmap("paragraph-language"));
-	hyphenationCharacterLabel->setPixmap(im.loadPixmap("hyphen-character"));
-	smallestWordLabel->setPixmap(im.loadPixmap("hyphen-smallest-word"));
-	textColor->colorButton->setIcon(im.loadIcon("text-color", textColor->colorButton->iconSize()));
-	strokeColor->colorButton->setIcon(im.loadIcon("text-outline-color", strokeColor->colorButton->iconSize()));
+	fontSizeLabel_->setPixmap(im.loadPixmap("font-size"));
+	trackingLabel_->setPixmap(im.loadPixmap("character-letter-tracking"));
+	widthSpaceLabel->setPixmap(im.loadPixmap("character-space-width"));
+	baselineOffsetLabel_->setPixmap(im.loadPixmap("character-offset-baseline"));
+	hscaleLabel_->setPixmap(im.loadPixmap("character-scale-width"));
+	vscaleLabel_->setPixmap(im.loadPixmap("character-scale-height"));
+	languageLabel_->setPixmap(im.loadPixmap("paragraph-language"));
+	hyphenationCharacterLabel->setPixmap(im.loadPixmap("hyphen-character"));
+	smallestWordLabel->setPixmap(im.loadPixmap("hyphen-smallest-word"));
+	textColor->setPixmap(im.loadPixmap("text-color"));
+	strokeColor->setPixmap(im.loadPixmap("text-outline-color"));
+	backgroundColor->setPixmap(im.loadPixmap("text-background-color"));
 }
 
 void SMCStyleWidget::languageChange()
diff --git a/scribus/ui/smpstylewidget.cpp b/scribus/ui/smpstylewidget.cpp
index 6aa4a9758..9ca5b58bb 100644
--- a/scribus/ui/smpstylewidget.cpp
+++ b/scribus/ui/smpstylewidget.cpp
@@ -122,6 +122,7 @@ void SMPStyleWidget::iconSetChange()
 	parEffectCharStyleComboLabel->setPixmap(iconManager.loadPixmap("character-style"));
 	peLabel->setPixmap(iconManager.loadPixmap("paragraph-effects-style"));
 	parentParEffectsButton->setIcon(iconManager.loadIcon("reset-style-changes"));
+	backgroundColor->setPixmap(iconManager.loadPixmap("color-fill"));
 }
 
 void SMPStyleWidget::languageChange()
diff --git a/scribus/ui/widgets/color_button.cpp b/scribus/ui/widgets/color_button.cpp
index 116c99f4d..3fb451b4c 100644
--- a/scribus/ui/widgets/color_button.cpp
+++ b/scribus/ui/widgets/color_button.cpp
@@ -28,18 +28,6 @@ ColorButton::ColorButton(QWidget *parent) : QToolButton(parent)
  *
  * ********************************************************************************* */
 
-
-void ColorButton::setHasDot(bool enabled)
-{
-	m_hasDot = enabled;
-	update();
-}
-
-bool ColorButton::hasDot() const
-{
-	return m_hasDot;
-}
-
 QSize ColorButton::circleSize() const
 {
 	int smallestSize = qMin(height(), width());
@@ -147,34 +135,38 @@ void ColorButton::setColorData(const CPColorData &data)
 {
 	m_colorData = data;
 
-	IconManager &im = IconManager::instance();
-	setDotIcon(im.loadPixmap("color-cmyk"));
-	setHasDot(canShowDot());
-
 	if (!m_doc)
 		return;
 
+	m_hasDot = canShowDot();
 
-	ScColor sColor(0, 0, 0);
+	if (m_infoType == InfoColorModel)
+	{
+		ScColor sColor(0, 0, 0);
+		IconManager &im = IconManager::instance();
 
-	if (m_doc->PageColors.contains(colorName()))
-		sColor = m_doc->PageColors.value(colorName());
+		if (m_doc->PageColors.contains(colorName()))
+			sColor = m_doc->PageColors.value(colorName());
 
-	switch(sColor.getColorModel())
-	{
-	case colorModel::colorModelCMYK:
-		setDotIcon(im.loadPixmap("color-cmyk"));
-		break;
-	case colorModelRGB:
-		setDotIcon(im.loadPixmap("color-rgb"));
-		break;
-	case colorModelLab:
-		setDotIcon(im.loadPixmap("color-lab"));
-		break;
+		switch (sColor.getColorModel())
+		{
+		case colorModel::colorModelCMYK:
+			m_dotIcon = im.loadIcon("color-cmyk");
+			break;
+		case colorModelRGB:
+			m_dotIcon = im.loadIcon("color-rgb");
+			break;
+		case colorModelLab:
+			m_dotIcon = im.loadIcon("color-lab");
+			break;
+		}
+
+		if (sColor.isSpotColor())
+			m_dotIcon = im.loadIcon("color-spot");
 	}
+	else
+		m_dotIcon = QIcon();
 
-	if (sColor.isSpotColor())
-		setDotIcon(im.loadPixmap("color-spot"));
 }
 
 QColor ColorButton::color() const
@@ -369,7 +361,10 @@ void ColorButton::setModeByType(int type)
 
 bool ColorButton::canShowDot()
 {
-	return m_mode == Mode::Solid && !(colorName() == CommonStrings::tr_NoneColor || colorName() == CommonStrings::None || colorName().isEmpty());
+	if (m_infoType == InfoNone)
+		return false;
+	else
+		return m_mode == Mode::Solid && !(colorName() == CommonStrings::tr_NoneColor || colorName() == CommonStrings::None || colorName().isEmpty());
 }
 
 QColor ColorButton::colorFromName(QString colorName, double shade) const
@@ -600,12 +595,6 @@ void ColorButton::setIcon(const QIcon &icon)
 	updatePreview();
 }
 
-void ColorButton::setDotIcon(const QIcon &icon)
-{
-	m_dotIcon = icon;
-	update();
-}
-
 void ColorButton::setApplyColorOnIcon(bool onIcon)
 {
 	m_onIcon = onIcon;
@@ -807,7 +796,7 @@ void ColorButton::paintEvent(QPaintEvent *e)
 	drawCircularHandle(&painter, bDot.center(), bSize.width() - inset, brush(), isEnabled());
 
 	// Draw Foreground Dot
-	if (m_hasDot && dotIcon().isNull())
+	if (m_hasDot && m_dotIcon.isNull())
 	{
 		mask.clear();
 		QRectF fDot(0, 0, fSize.width(), fSize.height());
@@ -828,13 +817,13 @@ void ColorButton::paintEvent(QPaintEvent *e)
 	}
 
 	// Draw Icon
-	if (m_hasDot && !dotIcon().isNull())
+	if (m_hasDot && !m_dotIcon.isNull())
 	{
 		QIcon::Mode iMode = isEnabled() ? QIcon::Normal : QIcon::Disabled;
 
 		int w = 9;
 		int h = 9;
-		QPixmap pix = dotIcon().pixmap(QSize(w, h), iMode);
+		QPixmap pix = m_dotIcon.pixmap(QSize(w, h), iMode);
 		QRectF fDot(rect().right() - fSize.width() + 0.5, rect().bottom() - fSize.height() + 0.5, fSize.width(), fSize.height()); // bottom right corner
 		painter.setPen(QPen(palette().color(QPalette::WindowText)));
 		painter.setBrush(palette().color(QPalette::Base));
diff --git a/scribus/ui/widgets/color_button.h b/scribus/ui/widgets/color_button.h
index 8272df6a3..cc0e2041c 100644
--- a/scribus/ui/widgets/color_button.h
+++ b/scribus/ui/widgets/color_button.h
@@ -30,16 +30,16 @@ public:
 		List = 2
 	};
 
+	enum InfoType
+	{
+		InfoNone = 0,
+		InfoColorModel = 1,
+		InfoColor = 2
+	};
+
 	ColorButton(QWidget *parent = nullptr);
 	~ColorButton(){};
 
-	/*!
-	 * \brief Show or hide small dot in bottom right corner filled with foreground brush.
-	 * \param enabled
-	 */
-	void setHasDot(bool enabled);
-	bool hasDot() const;
-
 	QSize circleSize() const;
 	QSize dotSize() const;
 
@@ -106,6 +106,9 @@ public:
 
 	Mode mode() const { return m_mode; };
 
+	void setInfoType(InfoType type)  {m_infoType = type;};
+	InfoType infoType() {return m_infoType;};
+
 	void setType(int type);
 	int type() const { return m_type; };
 
@@ -114,9 +117,6 @@ public:
 
 	void setIcon(const QIcon &icon);
 
-	void setDotIcon(const QIcon &icon);
-	QIcon dotIcon() const { return m_dotIcon; };
-
 	void setApplyColorOnIcon(bool onIcon);
 	bool applyColorOnIcon() { return m_onIcon; };
 
@@ -159,6 +159,7 @@ private:
 	Context m_context {Context::Simple};
 	MenuContextType m_contextType {MenuContextType::None};
 	Mode m_mode {Mode::Solid};
+	InfoType m_infoType {InfoType::InfoColorModel};
 	CPColorData m_colorData;
 	CPGradientData m_gradientData;
 	CPGradientVectorData m_gradientVectorData;
