- Add a better nopangoxft patch that doesn't depend on pangocairo

- Add firefox-1.5-pango-mathml.patch (bug 150393)
This commit is contained in:
besfahbo 2006-08-23 00:31:05 +00:00
parent 2deee06177
commit e3df1420c6
3 changed files with 95 additions and 2 deletions

View File

@ -0,0 +1,45 @@
--- mozilla/gfx/src/gtk/mozilla-decoder.cpp.noxft 2004-11-07 18:59:23.000000000 -0500
+++ mozilla/gfx/src/gtk/mozilla-decoder.cpp 2006-08-06 18:24:37.000000000 -0400
@@ -40,10 +40,9 @@
#define PANGO_ENABLE_ENGINE
#include "mozilla-decoder.h"
-#include <pango/pangoxft.h>
#include <pango/pangofc-fontmap.h>
#include <pango/pangofc-font.h>
-#include <gdk/gdkx.h>
+#include <gdk/gdkpango.h>
#include "nsString.h"
#include "nsIPersistentProperties2.h"
@@ -54,6 +53,7 @@
#include "nsCompressedCharMap.h"
#undef DEBUG_CUSTOM_ENCODER
+#define DEBUG_CUSTOM_ENCODER 1
G_DEFINE_TYPE (MozillaDecoder, mozilla_decoder, PANGO_TYPE_FC_DECODER)
@@ -145,6 +145,13 @@ mozilla_decoders_init(void)
if (initialized)
return 0;
+ PangoContext* context = gdk_pango_context_get ();
+ PangoFontMap* fontmap = pango_context_get_font_map (context);
+ g_object_unref (context);
+
+ if (!PANGO_IS_FC_FONT_MAP (fontmap))
+ return -1;
+
encoder_hash = g_hash_table_new(g_str_hash, g_str_equal);
cmap_hash = g_hash_table_new(g_str_hash, g_str_equal);
wide_hash = g_hash_table_new(g_str_hash, g_str_equal);
@@ -208,7 +215,7 @@ mozilla_decoders_init(void)
}
}
- pango_fc_font_map_add_decoder_find_func(PANGO_FC_FONT_MAP(pango_xft_get_font_map(GDK_DISPLAY(),gdk_x11_get_default_screen())),
+ pango_fc_font_map_add_decoder_find_func(PANGO_FC_FONT_MAP(fontmap),
mozilla_find_decoder,
NULL,
NULL);

View File

@ -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);

View File

@ -11,7 +11,7 @@
Summary: Mozilla Firefox Web browser.
Name: firefox
Version: 1.5.0.6
Release: 3
Release: 4
URL: http://www.mozilla.org/projects/firefox/
License: MPL/LGPL
Group: Applications/Internet
@ -53,7 +53,8 @@ Patch27: firefox-gnomestripe-0.1-livemarks.patch
Patch42: firefox-1.1-uriloader.patch
# font system fixes
Patch81: firefox-nopangoxft.patch
Patch81: firefox-1.5-nopangoxft.patch
Patch82: firefox-1.5-pango-mathml.patch
# patches from upstream (Patch100+)
Patch101: firefox-1.5-pango-ua.patch
@ -136,6 +137,7 @@ removed in favor of xulrunner-devel.
#%patch27 -p1
%patch42 -p0
%patch81 -p1
%patch82 -p1
%patch101 -p0 -b .pango-ua
%patch102 -p0 -b .pango-about
@ -354,6 +356,10 @@ fi
#---------------------------------------------------------------------
%changelog
* Tue Aug 22 2006 Behdad Esfahbod <besfahbo@redhat.com> - 1.5.0.6-4
- Add a better nopangoxft patch that doesn't depend on pangocairo
- Add firefox-1.5-pango-mathml.patch (bug 150393)
* Tue Aug 08 2006 Kai Engert <kengert@redhat.com> - 1.5.0.6-3
- Rebuild