Package: dunst
Version: 1.0.0-2
Followup-For: Bug #705607
The problem is caused by pango not knowing the final layout width when
rendering.
The attached patch fixes the problem.
--- dunst-1.0.0.Orig/x.c 2014-03-05 12:41:03.274349758 +0100
+++ dunst-1.0.0/x.c 2014-03-05 14:46:01.670678667 +0100
@@ -160,6 +160,17 @@
}
+static void r_update_layouts_width(GSList *layouts, int width)
+{
+ width -= 2 * settings.h_padding;
+ width -= 2 * settings.frame_width;
+
+ for (GSList *iter = layouts; iter; iter = iter->next) {
+ colored_layout *cl = iter->data;
+ pango_layout_set_width(cl->l, width * PANGO_SCALE);
+ }
+}
+
static void free_colored_layout(void *data)
{
colored_layout *cl = data;
@@ -379,6 +390,10 @@
int width = dim.w;
int height = dim.h;
+ if (have_dynamic_width() && settings.align != left) {
+ r_update_layouts_width(layouts, width);
+ }
+
cairo_t *c;
cairo_surface_t *image_surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height);
c = cairo_create(image_surface);