summaryrefslogtreecommitdiff
path: root/vcl/unx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-09-06 19:50:18 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-09-10 20:52:50 +0200
commitefbfdd935e319817b0680a7115a5061604262d1c (patch)
tree53f586b91b8db039067a56478fed1f3560a304d9 /vcl/unx
parentd514430e90d80f44b72af92b305cab71b099efe5 (diff)
pango_attr_list_filter returns the removed attributes
Change-Id: I7d1dd208f11086ac605cf0dcc47edef67e3967a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102113 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl/unx')
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx30
1 files changed, 12 insertions, 18 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 693200c6349a..660e07374fb4 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -8940,17 +8940,15 @@ public:
PangoAttrType aFilterAttrs[] = {PANGO_ATTR_FOREGROUND, PANGO_ATTR_INVALID};
- PangoAttrList* pAttrList = pOrigList
- ? pango_attr_list_filter(pOrigList, filter_pango_attrs, &aFilterAttrs)
- : nullptr;
- if (!pAttrList)
- pAttrList = pango_attr_list_new();
+ PangoAttrList* pAttrs = pOrigList ? pango_attr_list_copy(pOrigList) : pango_attr_list_new();
+ PangoAttrList* pRemovedAttrs = pOrigList ? pango_attr_list_filter(pAttrs, filter_pango_attrs, &aFilterAttrs) : nullptr;
if (rColor != COL_AUTO)
- pango_attr_list_insert(pAttrList, pango_attr_foreground_new(rColor.GetRed()/255.0, rColor.GetGreen()/255.0, rColor.GetBlue()/255.0));
+ pango_attr_list_insert(pAttrs, pango_attr_foreground_new(rColor.GetRed()/255.0, rColor.GetGreen()/255.0, rColor.GetBlue()/255.0));
- gtk_entry_set_attributes(m_pEntry, pAttrList);
- pango_attr_list_unref(pAttrList);
+ gtk_entry_set_attributes(m_pEntry, pAttrs);
+ pango_attr_list_unref(pAttrs);
+ pango_attr_list_unref(pRemovedAttrs);
}
void fire_signal_changed()
@@ -12546,14 +12544,12 @@ private:
PangoAttrType aFilterAttrs[] = {PANGO_ATTR_BACKGROUND, PANGO_ATTR_INVALID};
PangoAttrList* pOrigList = gtk_label_get_attributes(m_pLabel);
- PangoAttrList* pAttrs = pOrigList
- ? pango_attr_list_filter(pOrigList, filter_pango_attrs, &aFilterAttrs)
- : nullptr;
- if (!pAttrs)
- pAttrs = pango_attr_list_new();
+ PangoAttrList* pAttrs = pOrigList ? pango_attr_list_copy(pOrigList) : pango_attr_list_new();
+ PangoAttrList* pRemovedAttrs = pOrigList ? pango_attr_list_filter(pAttrs, filter_pango_attrs, &aFilterAttrs) : nullptr;
pango_attr_list_insert(pAttrs, pango_attr_background_new(nRed, nGreen, nBlue));
gtk_label_set_attributes(m_pLabel, pAttrs);
pango_attr_list_unref(pAttrs);
+ pango_attr_list_unref(pRemovedAttrs);
}
void set_text_foreground_color(const Color& rColor, bool bSetBold)
@@ -12568,17 +12564,15 @@ private:
aFilterAttrs[1] = PANGO_ATTR_INVALID;
PangoAttrList* pOrigList = gtk_label_get_attributes(m_pLabel);
- PangoAttrList* pAttrs = pOrigList
- ? pango_attr_list_filter(pOrigList, filter_pango_attrs, &aFilterAttrs)
- : nullptr;
- if (!pAttrs)
- pAttrs = pango_attr_list_new();
+ PangoAttrList* pAttrs = pOrigList ? pango_attr_list_copy(pOrigList) : pango_attr_list_new();
+ PangoAttrList* pRemovedAttrs = pOrigList ? pango_attr_list_filter(pAttrs, filter_pango_attrs, &aFilterAttrs) : nullptr;
if (rColor != COL_AUTO)
pango_attr_list_insert(pAttrs, pango_attr_foreground_new(nRed, nGreen, nBlue));
if (bSetBold)
pango_attr_list_insert(pAttrs, pango_attr_weight_new(PANGO_WEIGHT_BOLD));
gtk_label_set_attributes(m_pLabel, pAttrs);
pango_attr_list_unref(pAttrs);
+ pango_attr_list_unref(pRemovedAttrs);
}
public: