rpms/firefox/devel firefox-1.5-nopangoxft.patch, NONE, 1.1 firefox-1.5-pango-mathml.patch, NONE, 1.1 firefox.spec, 1.140, 1.141 firefox-nopangoxft.patch, 1.1, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Wed Aug 23 00:31:22 UTC 2006


Author: besfahbo

Update of /cvs/dist/rpms/firefox/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv4973

Modified Files:
	firefox.spec 
Added Files:
	firefox-1.5-nopangoxft.patch firefox-1.5-pango-mathml.patch 
Removed Files:
	firefox-nopangoxft.patch 
Log Message:
- Add a better nopangoxft patch that doesn't depend on pangocairo
- Add firefox-1.5-pango-mathml.patch (bug 150393)


firefox-1.5-nopangoxft.patch:
 mozilla-decoder.cpp |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

--- NEW FILE firefox-1.5-nopangoxft.patch ---
--- 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);

firefox-1.5-pango-mathml.patch:
 nsFontMetricsPango.cpp |   21 +++++++++------------
 1 files changed, 9 insertions(+), 12 deletions(-)

--- NEW FILE firefox-1.5-pango-mathml.patch ---
--- 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);


Index: firefox.spec
===================================================================
RCS file: /cvs/dist/rpms/firefox/devel/firefox.spec,v
retrieving revision 1.140
retrieving revision 1.141
diff -u -r1.140 -r1.141
--- firefox.spec	8 Aug 2006 17:35:26 -0000	1.140
+++ firefox.spec	23 Aug 2006 00:31:05 -0000	1.141
@@ -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 @@
 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 @@
 #%patch27 -p1
 %patch42 -p0
 %patch81 -p1
+%patch82 -p1
 
 %patch101 -p0 -b .pango-ua
 %patch102 -p0 -b .pango-about
@@ -354,6 +356,10 @@
 #---------------------------------------------------------------------
 
 %changelog
+* Tue Aug 22 2006 Behdad Esfahbod <besfahbo at 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 at redhat.com> - 1.5.0.6-3
 - Rebuild
 


--- firefox-nopangoxft.patch DELETED ---




More information about the fedora-cvs-commits mailing list