diff options
Diffstat (limited to 'firefox-1.5-pango-mathml.patch')
-rw-r--r-- | firefox-1.5-pango-mathml.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/firefox-1.5-pango-mathml.patch b/firefox-1.5-pango-mathml.patch new file mode 100644 index 0000000..98c4136 --- /dev/null +++ b/firefox-1.5-pango-mathml.patch @@ -0,0 +1,42 @@ +--- mozilla/gfx/src/gtk/nsFontMetricsPango.cpp.mathml 2006-02-23 16:01:42.000000000 -0500 ++++ mozilla/gfx/src/gtk/nsFontMetricsPango.cpp 2006-08-22 20:06:40.000000000 -0400 +@@ -829,30 +829,27 @@ nsFontMetricsPango::GetBoundingMetrics(c + goto loser; + } + +- pango_layout_set_text(layout, text, strlen(text)); ++ pango_layout_set_text(layout, text, -1); + FixupSpaceWidths(layout, text); + +- // Get the logical extents + PangoLayoutLine *line; + if (pango_layout_get_line_count(layout) != 1) { + printf("Warning: more than one line!\n"); + } + line = pango_layout_get_line(layout, 0); + +- // Get the ink extents +- PangoRectangle rect; +- pango_layout_line_get_extents(line, NULL, &rect); ++ // Get the ink and logical extents ++ PangoRectangle ink, logical; ++ pango_layout_line_get_extents(line, &ink, &logical); + + float P2T; + P2T = mDeviceContext->DevUnitsToAppUnits(); + +- aBoundingMetrics.leftBearing = +- NSToCoordRound(rect.x * P2T / PANGO_SCALE); +- aBoundingMetrics.rightBearing = +- 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); ++ aBoundingMetrics.leftBearing = NSToCoordRound(PANGO_LBEARING(ink) * P2T / PANGO_SCALE); ++ aBoundingMetrics.rightBearing = NSToCoordRound(PANGO_RBEARING(ink) * P2T / PANGO_SCALE); ++ aBoundingMetrics.ascent = NSToCoordRound(PANGO_ASCENT(ink) * P2T / PANGO_SCALE); ++ aBoundingMetrics.descent = NSToCoordRound(PANGO_DESCENT(ink) * P2T / PANGO_SCALE); ++ aBoundingMetrics.width = NSToCoordRound(logical.width * P2T / PANGO_SCALE); + + loser: + g_free(text); |