diff options
author | Felix Riemann <friemann@svn.gnome.org> | 2008-11-28 17:53:49 +0800 |
---|---|---|
committer | Felix Riemann <friemann@src.gnome.org> | 2008-11-28 17:53:49 +0800 |
commit | f1b786f18ae7dc9043c99b9b4de07207a6656a2c (patch) | |
tree | 1c401d4ee51b3f072f406a092c405a88d73a0bf2 /widgets | |
parent | 4f015ce67a104d6c9476356394dc78443d6eb06f (diff) | |
download | gsoc2013-evolution-f1b786f18ae7dc9043c99b9b4de07207a6656a2c.tar.gz gsoc2013-evolution-f1b786f18ae7dc9043c99b9b4de07207a6656a2c.tar.zst gsoc2013-evolution-f1b786f18ae7dc9043c99b9b4de07207a6656a2c.zip |
** Fixes bug #554464
2008-11-28 Felix Riemann <friemann@svn.gnome.org>
** Fixes bug #554464
* configure.in: Bump gtk+ minimum version to 2.14.0 which pulls
in a recent enough Pango version.
* widgets/table/e-cell-text.c: (build_layout): Let Pango handle
the ellipsizing, which should be faster.
svn path=/trunk/; revision=36819
Diffstat (limited to 'widgets')
-rw-r--r-- | widgets/table/ChangeLog | 7 | ||||
-rw-r--r-- | widgets/table/e-cell-text.c | 17 |
2 files changed, 9 insertions, 15 deletions
diff --git a/widgets/table/ChangeLog b/widgets/table/ChangeLog index dd5598306f..4034fe0a5a 100644 --- a/widgets/table/ChangeLog +++ b/widgets/table/ChangeLog @@ -1,3 +1,10 @@ +2008-11-28 Felix Riemann <friemann@svn.gnome.org> + + ** Part of fix for bug #554464 + + * e-cell-text.c: (build_layout): Let Pango handle the ellipsizing, + which should be faster. + 2008-10-17 Matthew Barnes <mbarnes@redhat.com> ** Fixes bug #560882 diff --git a/widgets/table/e-cell-text.c b/widgets/table/e-cell-text.c index fc20818625..a539e031eb 100644 --- a/widgets/table/e-cell-text.c +++ b/widgets/table/e-cell-text.c @@ -612,21 +612,8 @@ build_layout (ECellTextView *text_view, int row, const char *text, gint width) pango_layout_set_width (layout, width * PANGO_SCALE); pango_layout_set_wrap (layout, PANGO_WRAP_CHAR); - if (pango_layout_get_line_count (layout) > 1) { - PangoLayoutLine *line = pango_layout_get_line (layout, 0); - gchar *line_text = g_strdup (pango_layout_get_text (layout)); - gchar *last_char = g_utf8_find_prev_char (line_text, line_text + line->length - 1); - while (last_char && pango_layout_get_line_count (layout) > 1) { - gchar *new_text; - last_char = g_utf8_find_prev_char (line_text, last_char); - if (last_char) - *last_char = '\0'; - new_text = g_strconcat (line_text, "...", NULL); - pango_layout_set_text (layout, new_text, -1); - g_free (new_text); - } - g_free (line_text); - } + pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_END); + pango_layout_set_height (layout, 0); switch (ect->justify) { case GTK_JUSTIFY_RIGHT: |