[gtk/css-line-height2: 3/12] css: Translate line-height to a Pango




commit 95bcb356ba0620912d660fdcbf11243b68cfbd00
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Aug 7 11:17:54 2021 -0400

    css: Translate line-height to a Pango
    
    Pango 1.50 introduces a line-height attribute. Use it.
    This is enough to make line-height work for labels
    and entries.

 gtk/gtkcssstyle.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
---
diff --git a/gtk/gtkcssstyle.c b/gtk/gtkcssstyle.c
index 54aa0e7d23..01e7467a10 100644
--- a/gtk/gtkcssstyle.c
+++ b/gtk/gtkcssstyle.c
@@ -33,6 +33,7 @@
 #include "gtkcssstringvalueprivate.h"
 #include "gtkcssfontvariationsvalueprivate.h"
 #include "gtkcssfontfeaturesvalueprivate.h"
+#include "gtkcsslineheightvalueprivate.h"
 #include "gtkcssstylepropertyprivate.h"
 #include "gtkcsstransitionprivate.h"
 #include "gtkstyleanimationprivate.h"
@@ -485,6 +486,20 @@ gtk_css_style_get_pango_attributes (GtkCssStyle *style)
       attrs = add_pango_attr (attrs, pango_attr_letter_spacing_new (letter_spacing * PANGO_SCALE));
     }
 
+#if PANGO_VERSION_CHECK(1, 49, 0)
+  /* line-height */
+  {
+    double height = gtk_css_line_height_value_get (style->font->line_height);
+    if (height != 0.0)
+      {
+        if (gtk_css_number_value_get_dimension (style->font->line_height) == GTK_CSS_DIMENSION_LENGTH)
+          attrs = add_pango_attr (attrs, pango_attr_line_height_new_absolute (height * PANGO_SCALE));
+        else
+          attrs = add_pango_attr (attrs, pango_attr_line_height_new (height));
+      }
+   }
+#endif
+
   /* OpenType features */
 
   s = NULL;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]