From c773eb5784a9b895008240f23054d2ff916786a5 Mon Sep 17 00:00:00 2001 From: Ray Smith Date: Fri, 8 Sep 2017 10:29:03 +0100 Subject: [PATCH] Fixed rendering of Thai and units of char spacing --- training/stringrenderer.cpp | 7 ++++--- training/stringrenderer.h | 7 +++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/training/stringrenderer.cpp b/training/stringrenderer.cpp index 8cc78ddb..7b6d6b7c 100644 --- a/training/stringrenderer.cpp +++ b/training/stringrenderer.cpp @@ -188,13 +188,14 @@ void StringRenderer::SetLayoutProperties() { swap(max_width, max_height); } pango_layout_set_width(layout_, max_width * PANGO_SCALE); - pango_layout_set_wrap(layout_, PANGO_WRAP_WORD); + // Ultra-wide Thai strings need to wrap at char level. + pango_layout_set_wrap(layout_, PANGO_WRAP_WORD_CHAR); // Adjust character spacing PangoAttrList* attr_list = pango_attr_list_new(); if (char_spacing_) { - PangoAttribute* spacing_attr = pango_attr_letter_spacing_new( - static_cast(char_spacing_ * PANGO_SCALE + 0.5)); + PangoAttribute* spacing_attr = + pango_attr_letter_spacing_new(char_spacing_ * PANGO_SCALE); spacing_attr->start_index = 0; spacing_attr->end_index = static_cast(-1); pango_attr_list_change(attr_list, spacing_attr); diff --git a/training/stringrenderer.h b/training/stringrenderer.h index b6189ced..2937879e 100644 --- a/training/stringrenderer.h +++ b/training/stringrenderer.h @@ -64,9 +64,8 @@ class StringRenderer { int text_length, string* font_used, Pix** pix); bool set_font(const string& desc); - void set_char_spacing(double char_spacing) { - char_spacing_ = char_spacing; - } + // Char spacing is in PIXELS!!!!. + void set_char_spacing(int char_spacing) { char_spacing_ = char_spacing; } void set_leading(int leading) { leading_ = leading; } @@ -180,7 +179,7 @@ class StringRenderer { int page_width_, page_height_, h_margin_, v_margin_; // Text rendering properties double pen_color_[3]; - double char_spacing_; + int char_spacing_; int leading_, resolution_; bool vertical_text_; bool gravity_hint_strong_; -- GitLab