From: Mikael Magnusson Date: Tue, 5 Jun 2007 01:04:36 +0000 (+0000) Subject: merge r7357-8 X-Git-Tag: release-3.4.3~108 X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=08317f199544879bb175ff3a774a5baf496ec83e;p=dana%2Fopenbox.git merge r7357-8 --- diff --git a/configure.ac b/configure.ac index 7519e2e2..129e831c 100644 --- a/configure.ac +++ b/configure.ac @@ -16,7 +16,7 @@ dnl OB_MAJOR_VERSION=3 OB_MINOR_VERSION=4 OB_MICRO_VERSION=13 -OB_INTERFACE_AGE=1 +OB_INTERFACE_AGE=0 OB_BINARY_AGE=1 OB_VERSION=$OB_MAJOR_VERSION.$OB_MINOR_VERSION diff --git a/render/font.c b/render/font.c index 48321aec..a32bf7ce 100644 --- a/render/font.c +++ b/render/font.c @@ -109,7 +109,6 @@ RrFont *RrFontOpen(const RrInstance *inst, const gchar *name, gint size, /* setup the layout */ pango_layout_set_font_description(out->layout, out->font_desc); pango_layout_set_single_paragraph_mode(out->layout, TRUE); - pango_layout_set_ellipsize(out->layout, PANGO_ELLIPSIZE_MIDDLE); /* get the ascent and descent */ measure_font(inst, out); @@ -207,6 +206,7 @@ void RrFontDraw(XftDraw *d, RrTextureText *t, RrRect *area) gint mw; PangoRectangle rect; PangoAttrList *attrlist; + PangoEllipsizeMode ell; /* center the text vertically We do this centering based on the 'baseline' since different fonts have @@ -220,8 +220,24 @@ void RrFontDraw(XftDraw *d, RrTextureText *t, RrRect *area) w = area->width - 4; h = area->height; + 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); pango_layout_set_width(t->font->layout, w * PANGO_SCALE); + pango_layout_set_ellipsize(t->font->layout, ell); /* * * end of setting up the layout * * */ diff --git a/render/render.h b/render/render.h index c13894aa..7a3e5965 100644 --- a/render/render.h +++ b/render/render.h @@ -85,6 +85,14 @@ typedef enum { RR_JUSTIFY_RIGHT } RrJustify; +/* Put middle first so it's the default */ +typedef enum { + RR_ELLIPSIZE_MIDDLE, + RR_ELLIPSIZE_NONE, + RR_ELLIPSIZE_START, + RR_ELLIPSIZE_END +} RrEllipsizeMode; + typedef enum { RR_FONTWEIGHT_LIGHT, RR_FONTWEIGHT_NORMAL, @@ -128,6 +136,7 @@ struct _RrTextureText { guchar shadow_alpha; gboolean shortcut; /*!< Underline a character */ guint shortcut_pos; /*!< Position in bytes of the character to underline */ + RrEllipsizeMode ellipsize; }; struct _RrPixmapMask {