Closed Bug 243227 Opened 20 years ago Closed 17 years ago

font rendering inconsistent with certain system settings

Categories

(Core Graveyard :: GFX: Gtk, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: dzierzaw, Assigned: blizzard)

References

Details

(Whiteboard: CLOSEME 07/01)

Attachments

(3 files)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040220 Firefox/0.8
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7b) Gecko/20040320

I'm using Gnome 2.6 and a slightly tweaked "/etc/fonts/fonts.conf" Fontconfig
file which tells the renderer to antialias all fonts _except_ for those whose
size falls in a certain range. Mozilla seems to "not notice" this setting and
antialiases all fonts equally. This applies to the client area and the UI
controls alike.

Something has changed in the way Mozilla "talks" to FreeType2 and/or Fontconfig
and/or XFT (?), I believe. It used to be (up till rv:1.6) that it obeyed _all_
the settings specified via Fontconfig just like all other GTK2-based
applications do, now somehow _some_ of the settings are ignored. The font face
and size are consistent with the system settings, but the selective
anti-aliasing is not.

Reproducible: Always
Steps to Reproduce:
1. Start Mozilla
2.
3.

Actual Results:  
All fonts (both in the client area and the UI controls) are antialiased equally,
contrary to system-wide settings.

Expected Results:  
Fonts (both in the client area and the UI controls) are not antialiased if their
size falls within a certain range, as specified through system-wide settings.

Here are the versions of the packages on my system that I think might be relevant:
xft-2.1.2
fontconfig-2.2.2
freetype-2.1.8
Ok, I seem to have come close to the reason for this change of Mozilla's behavior.

I have just compiled Thunderbird 0.6 after substituting two files:
   gfx/src/gtk/nsFontMetricsXft.h:    replaced with revision 1.11
   gfx/src/gtk/nsFontMetricsXft.cpp:  replaced with revision 1.41 (this one
required some additional tuning to get it to compile, e.g. because of the
apparent changes of method signatures in nsIDeviceContext)

And the problem disappeared!

Could someone _please_ take it from here?
(And by "someone" I mean "someone who really knows what's going on in this code"
-- hey, I'm but an intruder here who's just had his first go at any Mozilla
hacking whatsoever and only scratched the surface of it :)
Same thing here, with Thunderbird 0.6, freetype 2.1.4, and fontconfig 2.2.1.

M
Same bug in mozilla-1.7-0.2.0.i386.rpm from mozilla.org (Fedora Core 2,
freetype-2.1.7, fontconfig-2.2.1)
I'm not sure what's changed there.  However, I'm pretty sure that we don't read
some of the settings out of the xft settings properly.
Depends on: xft_tracking
I would think this bug would be a blocker for firefox 1.0.  It is very relevant
to every day usage.  I'm running Linux from scratch and here are my package
versions:

fontconfig-2.2.3
freetype 2.1.9
xft-2.1.2.2
Flags: blocking-aviary1.1?
I think this bug was introduced when fixing the bug 197037. The attached patch
fixes the inconsistent antialiasing problem by passing the font size to
fontconfig in points (as it was done before the fix to bug 197037) instead of
pixels (as it is done now).

Unfortunately, this "fix" additionally brings back the problems mentioned in
bug 197037, so it isn't really a "fix", but a demonstration of the point.

Don't really know what an actual fix should look like...

PS. The patch was created against and tested with the official Firefox 1.0.2
tarball.
Well, guess what, in addition to "size", there's another property available
when matching font patterns in fonts.conf, namely "pixelsize". It looks like
you can use this one to get the expected behavior from different kinds of
applications, including those based on the current Mozilla tree. The only peeve
is that, in your /etc/fonts/fonts.conf, you're forced to select fonts that you
don't want antialiased based on pixel size, and not by point size.

My first impulse was to fill myself with shame and propose to switch this bug
to RESOLVED/INVALID. But then again, it still does feel a bit odd that when you
have a fancy to use point sizes in your /etc/fonts/fonts.conf all applications
listen to you, but Mozilla does not....
Attachment #178693 - Attachment mime type: application/octet-stream → text/XML
I have reverted patch from bug bug 197037, and it does fix the problem.  I think
mozilla should pass fonts to fontconfig in points, because every other
application on the gnome desktop is passed with points as far as I know.
Flags: blocking-aviary1.1? → blocking-aviary1.1-
Does this bug still occur in a recent trunk build?
http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/
Whiteboard: CLOSEME 07/01
No response from reporter - Incomplete
Status: UNCONFIRMED → RESOLVED
Closed: 17 years ago
Resolution: --- → INCOMPLETE
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: