ports/www/firefox-devel/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp
Joe Marcus Clarke ed564c5560 Add mozilla-firebird after a repo move from phoenix.
Mozilla Firebird is the browser reborn from the ashes of the Phoenix.

* Update to 0.6 [1]
* Add optional GTK+-2 support [2]
* Add [untested] Sparc64 support [3]
* Add [untested] Alpha support [4]
* Do not compile with -O2 by default.  Instead specify -DWITH_OPTIMIZED_CFLAGS
  to get extra optimizations
* Link the Java Plug-in again

Submitted by:	Stijn Hoop <stijn@win.tue.nl> [1]
		Christopher Nehren <apeiron@comcast.net> [2] (based on)
		tmm and kris [3]
		Bernd Walter <ticso@cicely.de> [4]
Minor fixes by:	obraun
2003-06-02 18:30:59 +00:00

57 lines
1.7 KiB
C++

--- gfx/src/gtk/nsFontMetricsXft.cpp.orig Mon May 12 06:03:28 2003
+++ gfx/src/gtk/nsFontMetricsXft.cpp Sat May 31 11:32:14 2003
@@ -90,6 +90,7 @@
FcPattern *mPattern;
FcPattern *mFontName;
FcCharSet *mCharset;
+ int mNotXft;
};
struct MozXftLangGroup {
@@ -772,7 +773,7 @@
// font in our loaded list that supports the character
for (PRInt32 i = 0, end = mLoadedFonts.Count(); i < end; ++i) {
nsFontXft *font = (nsFontXft *)mLoadedFonts.ElementAt(i);
- if (FcCharSetHasChar(font->mCharset, aChar))
+ if (FcCharSetHasChar(font->mCharset, aChar) && font->GetXftFont())
return font;
}
@@ -1194,7 +1195,7 @@
for (PRInt32 j = 0, end = mLoadedFonts.Count(); j < end; ++j) {
nsFontXft *font;
font = (nsFontXft *)mLoadedFonts.ElementAt(j);
- if (FcCharSetHasChar(font->mCharset, c)) {
+ if (FcCharSetHasChar(font->mCharset, c) && font->GetXftFont()) {
foundFont = font;
break;
}
@@ -1503,6 +1504,7 @@
FcPatternReference(mFontName);
mXftFont = nsnull;
+ mNotXft = 0;
// set up our charset
mCharset = nsnull;
@@ -1529,7 +1531,7 @@
XftFont *
nsFontXft::GetXftFont(void)
{
- if (!mXftFont) {
+ if (!mXftFont && !mNotXft) {
FcPattern *pat = FcFontRenderPrepare(0, mPattern, mFontName);
if (!pat)
return nsnull;
@@ -1548,8 +1550,10 @@
FcPatternDel(pat, FC_SPACING);
mXftFont = XftFontOpenPattern(GDK_DISPLAY(), pat);
- if (!mXftFont)
+ if (!mXftFont) {
FcPatternDestroy(pat);
+ mNotXft = 1;
+ }
}
return mXftFont;