summaryrefslogtreecommitdiff
path: root/pango/pango-layout.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-11-21 11:02:07 -0500
committerMatthias Clasen <mclasen@redhat.com>2021-11-22 09:58:18 -0500
commit9d114095bd4c4fb5ab64fff0ed5c1f6680ed2609 (patch)
treee0f9d05465da901e9ff29fe0ca45c8d52b21ac70 /pango/pango-layout.c
parent0b84e14251445de349038eca15d2559dfe25ae26 (diff)
downloadpango-9d114095bd4c4fb5ab64fff0ed5c1f6680ed2609.tar.gz
Fix a case of unintended hyphenation
When we take a complete item because there are no breakpoints, we were inserting a hyphen at the end even though there may not be a breakpoint there, and ending up with a hyphen in the middle of an (overlong) line: Brat-wurst. Test included. This but was discovered with the help of http://gitlab.gnome.org/matthiasc/layout-editor
Diffstat (limited to 'pango/pango-layout.c')
-rw-r--r--pango/pango-layout.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index 050138df..3cdb677a 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -4107,7 +4107,8 @@ retry_break:
if (break_num_chars == item->num_chars)
{
- if (break_needs_hyphen (layout, state, break_num_chars))
+ if (can_break_at (layout, state->start_offset + break_num_chars, wrap) &&
+ break_needs_hyphen (layout, state, break_num_chars))
item->analysis.flags |= PANGO_ANALYSIS_FLAG_NEED_HYPHEN;
insert_run (line, state, item, NULL, TRUE);