|
|
97845ed |
--- mozilla/gfx/src/gtk/nsFontMetricsPango.cpp.mathml 2006-02-23 16:01:42.000000000 -0500
|
|
|
97845ed |
+++ mozilla/gfx/src/gtk/nsFontMetricsPango.cpp 2006-08-22 20:06:40.000000000 -0400
|
|
|
97845ed |
@@ -829,30 +829,27 @@ nsFontMetricsPango::GetBoundingMetrics(c
|
|
|
97845ed |
goto loser;
|
|
|
97845ed |
}
|
|
|
97845ed |
|
|
|
97845ed |
- pango_layout_set_text(layout, text, strlen(text));
|
|
|
97845ed |
+ pango_layout_set_text(layout, text, -1);
|
|
|
97845ed |
FixupSpaceWidths(layout, text);
|
|
|
97845ed |
|
|
|
97845ed |
- // Get the logical extents
|
|
|
97845ed |
PangoLayoutLine *line;
|
|
|
97845ed |
if (pango_layout_get_line_count(layout) != 1) {
|
|
|
97845ed |
printf("Warning: more than one line!\n");
|
|
|
97845ed |
}
|
|
|
97845ed |
line = pango_layout_get_line(layout, 0);
|
|
|
97845ed |
|
|
|
97845ed |
- // Get the ink extents
|
|
|
97845ed |
- PangoRectangle rect;
|
|
|
97845ed |
- pango_layout_line_get_extents(line, NULL, &rect);
|
|
|
97845ed |
+ // Get the ink and logical extents
|
|
|
97845ed |
+ PangoRectangle ink, logical;
|
|
|
97845ed |
+ pango_layout_line_get_extents(line, &ink, &logical);
|
|
|
97845ed |
|
|
|
97845ed |
float P2T;
|
|
|
97845ed |
P2T = mDeviceContext->DevUnitsToAppUnits();
|
|
|
97845ed |
|
|
|
97845ed |
- aBoundingMetrics.leftBearing =
|
|
|
97845ed |
- NSToCoordRound(rect.x * P2T / PANGO_SCALE);
|
|
|
97845ed |
- aBoundingMetrics.rightBearing =
|
|
|
97845ed |
- NSToCoordRound(rect.width * P2T / PANGO_SCALE);
|
|
|
97845ed |
- aBoundingMetrics.width = NSToCoordRound((rect.x + rect.width) * P2T / PANGO_SCALE);
|
|
|
97845ed |
- aBoundingMetrics.ascent = NSToCoordRound(rect.y * P2T / PANGO_SCALE);
|
|
|
97845ed |
- aBoundingMetrics.descent = NSToCoordRound(rect.height * P2T / PANGO_SCALE);
|
|
|
97845ed |
+ aBoundingMetrics.leftBearing = NSToCoordRound(PANGO_LBEARING(ink) * P2T / PANGO_SCALE);
|
|
|
97845ed |
+ aBoundingMetrics.rightBearing = NSToCoordRound(PANGO_RBEARING(ink) * P2T / PANGO_SCALE);
|
|
|
97845ed |
+ aBoundingMetrics.ascent = NSToCoordRound(PANGO_ASCENT(ink) * P2T / PANGO_SCALE);
|
|
|
97845ed |
+ aBoundingMetrics.descent = NSToCoordRound(PANGO_DESCENT(ink) * P2T / PANGO_SCALE);
|
|
|
97845ed |
+ aBoundingMetrics.width = NSToCoordRound(logical.width * P2T / PANGO_SCALE);
|
|
|
97845ed |
|
|
|
97845ed |
loser:
|
|
|
97845ed |
g_free(text);
|