freebsd-ports/www/mozilla-devel/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp
Joe Marcus Clarke 2213e9a1d9 * Add a knob to optionally build XMLTerm [1]
* Add some extra CLI options to the mozilla.sh script [2]
* Add a patch to prevent crashes when visiting certain Russian sites [3]
* Add a dependency on devel/nspr to avoid problems with Galeon and Epiphany
  in certain setups [4]

PR:		55330 [1]
		55412 [2]
Submitted by:	Alexander Nedotsukov <bland@mail.ru> [1] [2]
		Sergey Akifyev <asa@gascom.ru> [4]
Obtained from:	www/mozilla-firebird [3]
2003-08-12 16:48:56 +00:00

57 lines
1.7 KiB
C++

--- gfx/src/gtk/nsFontMetricsXft.cpp.save Thu Aug 7 12:14:49 2003
+++ gfx/src/gtk/nsFontMetricsXft.cpp Thu Aug 7 12:33:45 2003
@@ -106,6 +106,7 @@
FcPattern *mPattern;
FcPattern *mFontName;
FcCharSet *mCharset;
+ int mNotXft;
};
class nsFontXftInfo;
@@ -1051,7 +1052,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 (font->HasChar(PRUint32(aChar)))
+ if (font->HasChar(PRUint32(aChar)) && font->GetXftFont())
return font;
}
@@ -1492,7 +1493,7 @@
// this character.
for (PRInt32 j = 0, end = mLoadedFonts.Count(); j < end; ++j) {
font = (nsFontXft *)mLoadedFonts.ElementAt(j);
- if (font->HasChar(c)) {
+ if (font->HasChar(c) && font->GetXftFont()) {
currFont = font;
goto FoundFont; // for speed -- avoid "if" statement
}
@@ -1922,6 +1923,7 @@
FcPatternReference(mFontName);
mXftFont = nsnull;
+ mNotXft = 0;
// set up our charset
mCharset = nsnull;
@@ -1948,7 +1950,7 @@
XftFont *
nsFontXft::GetXftFont(void)
{
- if (!mXftFont) {
+ if (!mXftFont && !mNotXft) {
FcPattern *pat = FcFontRenderPrepare(0, mPattern, mFontName);
if (!pat)
return nsnull;
@@ -1967,8 +1969,10 @@
FcPatternDel(pat, FC_SPACING);
mXftFont = XftFontOpenPattern(GDK_DISPLAY(), pat);
- if (!mXftFont)
+ if (!mXftFont) {
FcPatternDestroy(pat);
+ mNotXft = 1;
+ }
}
return mXftFont;