Commit 9d114095 authored by Matthias Clasen's avatar Matthias Clasen
Browse files

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
parent 0b84e142
......@@ -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);
......
Bratwurst
--- parameters
wrapped: 0
ellipsized: 0
lines: 1
width: 102400
--- attributes
range 0 4
range 4 2147483647
4 4294967295 style italic
range 2147483647 2147483647
--- directions
0 0 0 0 0 0 0 0 0
--- cursor positions
0(0) 1(0) 2(0) 3(0) 4(0) 5(0) 6(0) 7(0) 8(0) 8(1)
--- lines
i=1, index=0, paragraph-start=1, dir=ltr 'Bratwurst'
--- runs
i=1, index=0, chars=4, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'Brat'
i=2, index=4, chars=5, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'wurst'
i=3, index=9, no run, line end
{
"text" : "Bratwurst",
"attributes" : [
{
"start" : 4,
"type" : "style",
"value" : "italic"
}
],
"font" : "Sans Bold 32",
"tabs" : {
"positions-in-pixels" : true,
"positions" : [
0,
50,
100
]
},
"width" : 102400,
"line-spacing" : 1.2999999523162842
}
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment