From 049cef17f75f20af74bc81c33010da34196e4199 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Mon, 2 May 2022 12:41:20 +0200 Subject: Set line height as computed by Pango. --- src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H | 1 + src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H b/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H index c38283d95..d5f7f560d 100644 --- a/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H +++ b/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H @@ -34,6 +34,7 @@ public: FL_EXPORT ~Fl_Cairo_Font_Descriptor(); PangoFontDescription *fontref; int **width; // array of arrays of character widths + int line_height; }; diff --git a/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx b/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx index d020b9a8f..06abacccb 100644 --- a/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx +++ b/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx @@ -917,7 +917,7 @@ void Fl_Cairo_Graphics_Driver::delete_bitmask(fl_uintptr_t bm) { int Fl_Cairo_Graphics_Driver::height() { if (!font_descriptor()) font(0, 12); - return (font_descriptor()->ascent + font_descriptor()->descent) * 1.25; + return ((Fl_Cairo_Font_Descriptor*)font_descriptor())->line_height; } @@ -1063,6 +1063,7 @@ Fl_Cairo_Font_Descriptor::Fl_Cairo_Font_Descriptor(const char* name, Fl_Fontsize PangoFontMetrics *metrics = pango_fontset_get_metrics(fontset); ascent = pango_font_metrics_get_ascent(metrics)/PANGO_SCALE; descent = pango_font_metrics_get_descent(metrics)/PANGO_SCALE; + line_height = ceil(pango_font_metrics_get_height(metrics)/double(PANGO_SCALE)); q_width = pango_font_metrics_get_approximate_char_width(metrics)/PANGO_SCALE; pango_font_metrics_unref(metrics); g_object_unref(fontset); -- cgit v1.2.3