dia r3891 - in trunk: . lib
- From: hans svn gnome org
- To: svn-commits-list gnome org
- Subject: dia r3891 - in trunk: . lib
- Date: Sat, 1 Mar 2008 22:38:06 +0000 (GMT)
Author: hans
Date: Sat Mar 1 22:38:06 2008
New Revision: 3891
URL: http://svn.gnome.org/viewvc/dia?rev=3891&view=rev
Log:
2008-03-01 Hans Breuer <hans breuer org>
* lib/font.c : dia_font_get_sizes() was wrongly assuming single
line passed in. Patch inspired by Saurabh Nanda, fixes bug #482585
Modified:
trunk/ChangeLog
trunk/lib/font.c
Modified: trunk/lib/font.c
==============================================================================
--- trunk/lib/font.c (original)
+++ trunk/lib/font.c Sat Mar 1 22:38:06 2008
@@ -722,9 +722,9 @@
}
layout = dia_font_build_layout(non_empty_string, font, height * 20);
- /* Only one line here */
+ /* Only one line here ? */
iter = pango_layout_get_iter(layout);
-
+
pango_layout_iter_get_line_extents(iter, &ink_rect, &logical_rect);
top = pdu_to_dcm(logical_rect.y) / 20;
@@ -734,6 +734,16 @@
get_string_offsets(iter, &offsets, n_offsets);
get_layout_offsets(pango_layout_get_line(layout, 0), layout_offsets);
+ /* FIXME: the above assumption of 'one line' is wrong. At least calculate the overall width correctly
+ * to avoid text overflowing its box, like in bug #482585 */
+ while (pango_layout_iter_next_line (iter)) {
+ PangoRectangle more_ink_rect, more_logical_rect;
+
+ pango_layout_iter_get_line_extents(iter, &more_ink_rect, &more_logical_rect);
+ if (more_logical_rect.width > logical_rect.width)
+ logical_rect.width = more_logical_rect.width;
+ }
+
pango_layout_iter_free(iter);
g_object_unref(G_OBJECT(layout));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]