diff options
| author | Dana Jansens <danakj@orodu.net> | 2008-02-07 01:34:34 -0500 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2008-02-07 02:14:45 -0500 |
| commit | fcc23e1fd18a6ee3498de2f36928add82a468ed8 (patch) | |
| tree | 526b6bcfab423f8ff5c9eb7bcb2b4508c09bb3bd /render/font.c | |
| parent | b3c5fab3fa64e53c6c1413f848043eb1e2027f0c (diff) | |
when drawing and measuring strings in "flow" mode, don't ellipsize so that lines can wrap
Diffstat (limited to 'render/font.c')
| -rw-r--r-- | render/font.c | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/render/font.c b/render/font.c index e7cef6ab..5ccfb8fd 100644 --- a/render/font.c +++ b/render/font.c @@ -148,11 +148,13 @@ static void font_measure_full(const RrFont *f, const gchar *str, if (flow) { pango_layout_set_single_paragraph_mode(f->layout, FALSE); pango_layout_set_width(f->layout, maxwidth * PANGO_SCALE); + pango_layout_set_ellipsize(f->layout, PANGO_ELLIPSIZE_NONE); } else { /* single line mode */ pango_layout_set_single_paragraph_mode(f->layout, TRUE); pango_layout_set_width(f->layout, -1); + pango_layout_set_ellipsize(f->layout, PANGO_ELLIPSIZE_MIDDLE); } /* pango_layout_get_pixel_extents lies! this is the right way to get the @@ -240,19 +242,23 @@ void RrFontDraw(XftDraw *d, RrTextureText *t, RrRect *area) w -= 4; h = area->height; - switch (t->ellipsize) { - case RR_ELLIPSIZE_NONE: + if (t->flow) ell = PANGO_ELLIPSIZE_NONE; - break; - case RR_ELLIPSIZE_START: - ell = PANGO_ELLIPSIZE_START; - break; - case RR_ELLIPSIZE_MIDDLE: - ell = PANGO_ELLIPSIZE_MIDDLE; - break; - case RR_ELLIPSIZE_END: - ell = PANGO_ELLIPSIZE_END; - break; + else { + switch (t->ellipsize) { + case RR_ELLIPSIZE_NONE: + ell = PANGO_ELLIPSIZE_NONE; + break; + case RR_ELLIPSIZE_START: + ell = PANGO_ELLIPSIZE_START; + break; + case RR_ELLIPSIZE_MIDDLE: + ell = PANGO_ELLIPSIZE_MIDDLE; + break; + case RR_ELLIPSIZE_END: + ell = PANGO_ELLIPSIZE_END; + break; + } } pango_layout_set_text(t->font->layout, t->string, -1); |
