summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2008-02-07 01:34:34 -0500
committerDana Jansens <danakj@orodu.net>2008-02-14 14:24:37 -0500
commit0da49e82aea1e881792ffc45a48301a090af18f3 (patch)
treedd168bc64eeb853cff63b53182553e0283ceb6f6 /render
parent7b4556b2111b03dcdca4a58e1bde94a66ba86806 (diff)
when drawing and measuring strings in "flow" mode, don't ellipsize so that lines can wrap
Diffstat (limited to 'render')
-rw-r--r--render/font.c30
1 files changed, 18 insertions, 12 deletions
diff --git a/render/font.c b/render/font.c
index 2f06c731..583c9f7d 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);