summaryrefslogtreecommitdiff
path: root/pango
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2002-10-23 08:47:56 +0000
committerAlexander Larsson <alexl@src.gnome.org>2002-10-23 08:47:56 +0000
commit845f847aaa87836bde977ada033f44c281d03a25 (patch)
treead80fdf1284f7c801cf66b8b903795797f63d084 /pango
parentefe38161780103a7f01e1f241eca4d02e2039326 (diff)
downloadpango-845f847aaa87836bde977ada033f44c281d03a25.tar.gz
Don't break at the first char in the first item on a line. Fixes
2002-10-23 Alexander Larsson <alexl@redhat.com> * pango/pango-layout.c (can_break_in): Don't break at the first char in the first item on a line. Fixes regression in linebreaking (#95900).
Diffstat (limited to 'pango')
-rw-r--r--pango/pango-layout.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index d49e5f64..aec4ed70 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -2447,11 +2447,12 @@ can_break_at (PangoLayout *layout,
static inline gboolean
can_break_in (PangoLayout *layout,
int start_offset,
- int num_chars)
+ int num_chars,
+ gboolean allow_break_at_start)
{
int i;
- for (i = 0; i < num_chars; i++)
+ for (i = allow_break_at_start ? 0 : 1; i < num_chars; i++)
if (can_break_at (layout, start_offset + i, FALSE))
return TRUE;
@@ -2720,16 +2721,18 @@ process_line (PangoLayout *layout,
BreakResult result;
int old_num_chars;
int old_remaining_width;
+ gboolean first_item_in_line;
old_num_chars = item->num_chars;
old_remaining_width = state->remaining_width;
+ first_item_in_line = line->runs != NULL;
result = process_item (layout, line, state, !have_break, FALSE);
switch (result)
{
case BREAK_ALL_FIT:
- if (can_break_in (layout, state->start_offset, old_num_chars))
+ if (can_break_in (layout, state->start_offset, old_num_chars, first_item_in_line))
{
have_break = TRUE;
break_remaining_width = old_remaining_width;