summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-09-01 15:06:26 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-09-01 15:06:26 +0000
commit76a8eb4960fd878d5c10920f04f34c7317c5d1d3 (patch)
tree06c41f10918572e3912e56e9fa66b5bdd54c7559
parent172d97de05943c0b9786f473b66ab5b59fe1e5c2 (diff)
parentad3dad1965b4aec226614a76a69cf52e3d60be76 (diff)
downloadgtk+-76a8eb4960fd878d5c10920f04f34c7317c5d1d3.tar.gz
Merge branch 'matthiasc/for-master' into 'master'
Initial support for new Pango attributes See merge request GNOME/gtk!3911
-rw-r--r--demos/gtk-demo/fontify.c8
-rw-r--r--gtk/gtkpango.c15
-rw-r--r--gtk/gtktextbuffer.c8
3 files changed, 31 insertions, 0 deletions
diff --git a/demos/gtk-demo/fontify.c b/demos/gtk-demo/fontify.c
index 34b5063b46..cdbdf654d3 100644
--- a/demos/gtk-demo/fontify.c
+++ b/demos/gtk-demo/fontify.c
@@ -283,6 +283,14 @@ insert_tags_for_attributes (GtkTextBuffer *buffer,
VOID_ATTR (sentence);
break;
+ case PANGO_ATTR_BASELINE_SHIFT:
+ INT_ATTR (baseline_shift);
+ break;
+
+ case PANGO_ATTR_FONT_SCALE:
+ INT_ATTR (font_scale);
+ break;
+
case PANGO_ATTR_SHAPE:
case PANGO_ATTR_ABSOLUTE_SIZE:
case PANGO_ATTR_GRAVITY:
diff --git a/gtk/gtkpango.c b/gtk/gtkpango.c
index 94207eb5cc..58ee7a3bf2 100644
--- a/gtk/gtkpango.c
+++ b/gtk/gtkpango.c
@@ -267,6 +267,21 @@ attribute_from_text (GtkBuilder *builder,
case PANGO_ATTR_SENTENCE:
attribute = pango_attr_sentence_new ();
break;
+ case PANGO_ATTR_BASELINE_SHIFT:
+ if (gtk_builder_value_from_string_type (builder, PANGO_TYPE_BASELINE_SHIFT, value, &val, NULL))
+ attribute = pango_attr_baseline_shift_new (g_value_get_enum (&val));
+ else if (gtk_builder_value_from_string_type (builder, G_TYPE_INT, value, &val, NULL))
+ attribute = pango_attr_baseline_shift_new (g_value_get_enum (&val));
+ else
+ g_set_error (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_VALUE,
+ "Could not parse '%s' as baseline shift value", value);
+ break;
+ case PANGO_ATTR_FONT_SCALE:
+ if (gtk_builder_value_from_string_type (builder, PANGO_TYPE_FONT_SCALE, value, &val, error))
+ attribute = pango_attr_font_scale_new (g_value_get_enum (&val));
+ break;
case PANGO_ATTR_INVALID:
default:
break;
diff --git a/gtk/gtktextbuffer.c b/gtk/gtktextbuffer.c
index 67d1e47056..4ec5fe6077 100644
--- a/gtk/gtktextbuffer.c
+++ b/gtk/gtktextbuffer.c
@@ -4736,6 +4736,14 @@ insert_tags_for_attributes (GtkTextBuffer *buffer,
VOID_ATTR (sentence);
break;
+ case PANGO_ATTR_BASELINE_SHIFT:
+ INT_ATTR (baseline_shift);
+ break;
+
+ case PANGO_ATTR_FONT_SCALE:
+ INT_ATTR (font_scale);
+ break;
+
case PANGO_ATTR_SHAPE:
case PANGO_ATTR_ABSOLUTE_SIZE:
case PANGO_ATTR_GRAVITY: