X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fmodules%2Fgtk2%2Fproducer_pango.c;h=4f4526fb8bff8f7db21551f192e742a58cf1c193;hb=9b3a83a4892bd0583992d6f67f4f4fb1999a7903;hp=69b1c2527b5cb8d4f4e4fb7da95efcd56a15fd43;hpb=3719f0ab8e239e0ddb38eb758bb745d11880787d;p=melted diff --git a/src/modules/gtk2/producer_pango.c b/src/modules/gtk2/producer_pango.c index 69b1c25..4f4526f 100644 --- a/src/modules/gtk2/producer_pango.c +++ b/src/modules/gtk2/producer_pango.c @@ -633,11 +633,23 @@ static GdkPixbuf *pango_get_pixbuf( const char *markup, const char *text, const // pango_layout_set_spacing( layout, space ); pango_layout_set_alignment( layout, ( PangoAlignment ) align ); if ( markup != NULL && strcmp( markup, "" ) != 0 ) + { pango_layout_set_markup( layout, markup, strlen( markup ) ); + } else if ( text != NULL && strcmp( text, "" ) != 0 ) - pango_layout_set_text( layout, text, strlen( text ) ); + { + // Replace all ~'s with a line feed (silly convention, but handy) + char *copy = strdup( text ); + while ( strchr( copy, '~' ) ) + ( *strchr( copy, '~' ) ) = '\n'; + pango_layout_set_text( layout, copy, strlen( copy ) ); + free( copy ); + } else + { + // Pango doesn't like empty strings pango_layout_set_text( layout, " ", 2 ); + } pango_layout_get_pixel_size( layout, &w, &h ); pixbuf = gdk_pixbuf_new( GDK_COLORSPACE_RGB, TRUE /* has alpha */, 8, w + 2 * pad, h + 2 * pad );