--- mozilla/gfx/src/gtk/nsFontMetricsPango.cpp.foo 2005-03-21 17:09:14.000000000 -0500 +++ mozilla/gfx/src/gtk/nsFontMetricsPango.cpp 2005-03-21 17:16:53.000000000 -0500 @@ -501,13 +501,11 @@ pango_layout_get_size(layout, &width, &height); - width /= PANGO_SCALE; - g_object_unref(layout); float f; f = mDeviceContext->DevUnitsToAppUnits(); - aWidth = NSToCoordRound(width * f); + aWidth = NSToCoordRound(width * f / PANGO_SCALE); // printf("GetWidth (char *) %d\n", aWidth); @@ -541,11 +539,9 @@ FixupSpaceWidths(layout, text); pango_layout_get_size(layout, &width, &height); - width /= PANGO_SCALE; - float f; f = mDeviceContext->DevUnitsToAppUnits(); - aWidth = NSToCoordRound(width * f); + aWidth = NSToCoordRound(width * f / PANGO_SCALE); // printf("GetWidth %d\n", aWidth); @@ -601,9 +597,9 @@ float P2T; P2T = mDeviceContext->DevUnitsToAppUnits(); - aDimensions.width = NSToCoordRound(rect.width / PANGO_SCALE * P2T); - aDimensions.ascent = NSToCoordRound(PANGO_ASCENT(rect) / PANGO_SCALE * P2T); - aDimensions.descent = NSToCoordRound(PANGO_DESCENT(rect) / PANGO_SCALE * P2T); + aDimensions.width = NSToCoordRound(rect.width * P2T / PANGO_SCALE); + aDimensions.ascent = NSToCoordRound(PANGO_ASCENT(rect) * P2T / PANGO_SCALE); + aDimensions.descent = NSToCoordRound(PANGO_DESCENT(rect) * P2T / PANGO_SCALE); // printf("GetTextDimensions %d %d %d\n", aDimensions.width, //aDimensions.ascent, aDimensions.descent); @@ -880,12 +876,12 @@ P2T = mDeviceContext->DevUnitsToAppUnits(); aBoundingMetrics.leftBearing = - NSToCoordRound(rect.x / PANGO_SCALE * P2T); + NSToCoordRound(rect.x * P2T / PANGO_SCALE); aBoundingMetrics.rightBearing = - NSToCoordRound(rect.width / PANGO_SCALE * P2T); - aBoundingMetrics.width = NSToCoordRound((rect.x + rect.width) / PANGO_SCALE * P2T); - aBoundingMetrics.ascent = NSToCoordRound(rect.y / PANGO_SCALE * P2T); - aBoundingMetrics.descent = NSToCoordRound(rect.height / PANGO_SCALE * P2T); + NSToCoordRound(rect.width * P2T / PANGO_SCALE); + aBoundingMetrics.width = NSToCoordRound((rect.x + rect.width) * P2T / PANGO_SCALE); + aBoundingMetrics.ascent = NSToCoordRound(rect.y * P2T / PANGO_SCALE); + aBoundingMetrics.descent = NSToCoordRound(rect.height * P2T / PANGO_SCALE); loser: g_free(text); @@ -1118,11 +1114,11 @@ // Convert the width into app units for (int i = 0; i < n_ranges; i++) { - aWidth += (ranges[(i * 2) + 1] - ranges[(i * 2)]) / PANGO_SCALE; + aWidth += (ranges[(i * 2) + 1] - ranges[(i * 2)]); } f = mDeviceContext-> DevUnitsToAppUnits(); - aWidth = nscoord(aWidth * f); + aWidth = nscoord(aWidth * f / PANGO_SCALE); loser: if (ranges)