Open Bug 653417 Opened 14 years ago Updated 3 years ago

Monospace Courier New font not displayed mono-spaced

Categories

(Core :: Layout: Text and Fonts, defect)

x86_64
Windows 7
defect

Tracking

()

UNCONFIRMED

People

(Reporter: asc99c, Unassigned)

References

()

Details

Attachments

(1 file)

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0 Build Identifier: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0 The default mono-spaced fault 'Courier New' on Windows 7 is not being displayed with all characters the same width. The example URL contains a block of monospaced text, which if you look at the closing brackets on each line, has not quite been monospaced. Changing the font to Consolas (e.g. using Firebug) makes the problem go away. Reproducible: Always Steps to Reproduce: Any block of Courier New text of sufficient size can be seen to not align quite perfectly. Simple example is to write out ten asterisks followed by a bar, and on the line below, ten spaces followed by a bar. The two bar characters will not line up. Actual Results: Spaces are very slightly narrower than e.g. asterisks. Expected Results: Mono-spaced characters should all be rendered at the same width. Potentially this could be related to bug 652760, which talks about problems dealing with the width of characters under DirectWrite, where characters can have non-integer width. The problem does not occur under Windows XP using GDI.
Problem is very apparent in the attached screenshot - this is part of a standard copyright header, which was pasted into an internal Wiki. All lines in the block section are the same number of characters.
Offhand it looks like the width of the space character is getting rounded down to an integer number of pixels. This may well be a bug in how we initialize the metrics fields in our dwrite font class.
Does the effect vary if you zoom the page in or out, by the way? I'm guessing it will....
I hadn't checked this, but yes it does. The attached screenshot is at standard zoom. Zooming in by 1 increment, it appears the space is slightly wider than the asterisk, such that the line with spaces is around 2.6 character widths longer than the first line.
I can't seem to reproduce this problem on my Win7 machine, with either DirectWrite or GDI font rendering. Could you please post the contents of about:support from your system, to see if that offers any clues? (use the "Copy all to clipboard" button in the about:support window, as manually copying the content loses linebreaks). Thanks.
Here you go: Application Basics Name Firefox Version 4.0 User Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0 Profile Directory Open Containing Folder Enabled Plugins about:plugins Build Configuration about:buildconfig Extensions Name Version Enabled ID savememory 1.0.5 false extension@savememory.com printpdf 0.76 false printpdf@pavlov.net Yet Another Window Resizer 1.21 false yawr@sdx.hu Tamper Data 11.0.1 true {9c51bd27-6ed8-4000-a2bf-36cb95c0c947} Page Speed 1.9.2 false {e3f6c2cc-d8db-498c-af6c-499fb211db97} pdfforge Toolbar 4.3 false pdfforge@mybrowserbar.com Java Console 6.0.16 false {CAFEEFAC-0016-0000-0016-ABCDEFFEDCBA} Firebug 1.7.0 true firebug@software.joehewitt.com Cooliris 1.12.2.44172 false piclens@cooliris.com ColorZilla 2.5.5 true {6AC85730-7D0F-4de0-B3FA-21142DD85326} Java Console 6.0.22 true {CAFEEFAC-0016-0000-0022-ABCDEFFEDCBA} Adblock Plus 1.3.6 true {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d} Modified Preferences Name Value accessibility.typeaheadfind.flashBar 0 browser.history_expire_days.mirror 180 browser.places.importBookmarksHTML false browser.places.smartBookmarksVersion 2 browser.startup.homepage_override.buildID 20110318052756 browser.startup.homepage_override.mstone rv:2.0 dom.disable_window_move_resize true dom.ipc.plugins.enabled.npcoolirisplugin.dll false extensions.lastAppVersion 4.0 keyword.URL http://search.yahoo.com/search?ei=utf-8&fr=greentree_ff1&type=302398&p= network.cookie.prefsMigrated true places.database.lastMaintenance 1303816542 places.history.expiration.transient_current_max_pages 128690 places.last_vacuum 1299496156 print.print_printer HP LaserJet P2015 PCL6 print.printer_HP_LaserJet_P2015_PCL6.print_bgcolor true print.printer_HP_LaserJet_P2015_PCL6.print_bgimages true print.printer_HP_LaserJet_P2015_PCL6.print_command print.printer_HP_LaserJet_P2015_PCL6.print_downloadfonts false print.printer_HP_LaserJet_P2015_PCL6.print_edge_bottom 0 print.printer_HP_LaserJet_P2015_PCL6.print_edge_left 0 print.printer_HP_LaserJet_P2015_PCL6.print_edge_right 0 print.printer_HP_LaserJet_P2015_PCL6.print_edge_top 0 print.printer_HP_LaserJet_P2015_PCL6.print_evenpages true print.printer_HP_LaserJet_P2015_PCL6.print_footercenter print.printer_HP_LaserJet_P2015_PCL6.print_footerleft &PT print.printer_HP_LaserJet_P2015_PCL6.print_footerright &D print.printer_HP_LaserJet_P2015_PCL6.print_headercenter print.printer_HP_LaserJet_P2015_PCL6.print_headerleft &T print.printer_HP_LaserJet_P2015_PCL6.print_headerright &U print.printer_HP_LaserJet_P2015_PCL6.print_in_color true print.printer_HP_LaserJet_P2015_PCL6.print_margin_bottom 0.5 print.printer_HP_LaserJet_P2015_PCL6.print_margin_left 0.5 print.printer_HP_LaserJet_P2015_PCL6.print_margin_right 0.5 print.printer_HP_LaserJet_P2015_PCL6.print_margin_top 0.5 print.printer_HP_LaserJet_P2015_PCL6.print_oddpages true print.printer_HP_LaserJet_P2015_PCL6.print_orientation 0 print.printer_HP_LaserJet_P2015_PCL6.print_pagedelay 500 print.printer_HP_LaserJet_P2015_PCL6.print_paper_data 9 print.printer_HP_LaserJet_P2015_PCL6.print_paper_height 11.00 print.printer_HP_LaserJet_P2015_PCL6.print_paper_size_type 0 print.printer_HP_LaserJet_P2015_PCL6.print_paper_size_unit 1 print.printer_HP_LaserJet_P2015_PCL6.print_paper_width 8.50 print.printer_HP_LaserJet_P2015_PCL6.print_reversed false print.printer_HP_LaserJet_P2015_PCL6.print_scaling 1.00 print.printer_HP_LaserJet_P2015_PCL6.print_shrink_to_fit true print.printer_HP_LaserJet_P2015_PCL6.print_to_file false print.printer_HP_LaserJet_P2015_PCL6.print_unwriteable_margin_bottom 0 print.printer_HP_LaserJet_P2015_PCL6.print_unwriteable_margin_left 0 print.printer_HP_LaserJet_P2015_PCL6.print_unwriteable_margin_right 0 print.printer_HP_LaserJet_P2015_PCL6.print_unwriteable_margin_top 0 print.printer_PDFCreator.print_bgcolor false print.printer_PDFCreator.print_bgimages false print.printer_PDFCreator.print_command print.printer_PDFCreator.print_downloadfonts false print.printer_PDFCreator.print_edge_bottom 0 print.printer_PDFCreator.print_edge_left 0 print.printer_PDFCreator.print_edge_right 0 print.printer_PDFCreator.print_edge_top 0 print.printer_PDFCreator.print_evenpages true print.printer_PDFCreator.print_footercenter print.printer_PDFCreator.print_footerleft &PT print.printer_PDFCreator.print_footerright &D print.printer_PDFCreator.print_headercenter print.printer_PDFCreator.print_headerleft &T print.printer_PDFCreator.print_headerright &U print.printer_PDFCreator.print_in_color true print.printer_PDFCreator.print_margin_bottom 0.5 print.printer_PDFCreator.print_margin_left 0.5 print.printer_PDFCreator.print_margin_right 0.5 print.printer_PDFCreator.print_margin_top 0.5 print.printer_PDFCreator.print_oddpages true print.printer_PDFCreator.print_orientation 0 print.printer_PDFCreator.print_pagedelay 500 print.printer_PDFCreator.print_paper_data 9 print.printer_PDFCreator.print_paper_height 11.00 print.printer_PDFCreator.print_paper_size_type 0 print.printer_PDFCreator.print_paper_size_unit 1 print.printer_PDFCreator.print_paper_width 8.50 print.printer_PDFCreator.print_reversed false print.printer_PDFCreator.print_scaling 1.00 print.printer_PDFCreator.print_shrink_to_fit true print.printer_PDFCreator.print_to_file false print.printer_PDFCreator.print_unwriteable_margin_bottom 0 print.printer_PDFCreator.print_unwriteable_margin_left 0 print.printer_PDFCreator.print_unwriteable_margin_right 0 print.printer_PDFCreator.print_unwriteable_margin_top 0 privacy.cpd.downloads false privacy.cpd.formdata false privacy.cpd.history false privacy.cpd.sessions false privacy.sanitize.migrateFx3Prefs true privacy.sanitize.timeSpan 2 security.OCSP.disable_button.managecrl false security.disable_button.openCertManager false security.warn_entering_weak false security.warn_viewing_mixed false Graphics Adapter Description NVIDIA GeForce 9600M GS Vendor ID 10de Device ID 0648 Adapter RAM 512 Adapter Drivers nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um Driver Version 8.17.12.6776 Driver Date 3-17-2011 Direct2D Enabled true DirectWrite Enabled true (6.1.7601.17563, font cache n/a) WebGL Renderer Google Inc. -- ANGLE -- OpenGL ES 2.0 (ANGLE 0.0.0.541) GPU Accelerated Windows 1/1 Direct3D 10
Does it make any difference if you disable the extensions you have installed, and/or create a new profile?
It doesn't seem to change anything - I've tried Help -> Restart with Add-ons Disabled, which gives exactly the same results. I also unticked 'Use hardware acceleration when available' in Options -> Advanced -> General. I checked about:support after disabling hardware acceleration, and Direct2D was set false, but DirectWrite was still true. Is there anything I can do to not use DirectWrite? I found this key in about:config: gfx.font_rendering.directwrite.enabled But the default value is already false, yet I can see from about:support that it is enabled.
(In reply to comment #9) > It doesn't seem to change anything - I've tried Help -> Restart with Add-ons > Disabled, which gives exactly the same results. I also unticked 'Use hardware > acceleration when available' in Options -> Advanced -> General. > > I checked about:support after disabling hardware acceleration, and Direct2D was > set false, but DirectWrite was still true. Had you restarted the browser after disabling h/w acc? This requires a restart to fully take effect. After that, DirectWrite should not be active, I believe. > Is there anything I can do to not use DirectWrite? I found this key in > about:config: > gfx.font_rendering.directwrite.enabled > > But the default value is already false, yet I can see from about:support that > it is enabled. With D2D enabled, DirectWrite will always be used regardless of this setting. But with D2D disabled, you should get GDI font rendering unless this key is explicitly set to true. Remember that a browser restart is required for such changes to take effect. What happens if you restart in Safe Mode?
I've finished at work now, so I've just tried this again through Remote Desktop from a Windows XP machine. It renders correctly over remote desktop, which I guess isn't too surprising since as I understand it, that just sends GDI commands over the network. From the last section of the support info, I can see that both Direct2D / DirectWrite are now disabled when Firefox is opened through RDP: Graphics Adapter Description RDPDD Chained DD Vendor ID 0000 Device ID 0000 Adapter RAM Unknown Adapter Drivers RDPDD Driver Version Driver Date Direct2D Enabled Blocked on your graphics card because of unresolved driver issues. DirectWrite Enabled false (6.1.7601.17563, font cache n/a) WebGL Renderer (WebGL unavailable) GPU Accelerated Windows 0/1 Us lucky lot in England get an extra days hols tomorrow for the royal wedding, so I think I'll have to park this until Tuesday, as I don't have any Windows 7 machine to test on at home. Thanks for all your help! Andy
Just managed to get D2D and DirectWrite disabled on a normal Firefox invocation, and I can see that monospace is rendering correctly again now. Here are the graphics sections with monospace working correctly: Adapter Description NVIDIA GeForce 9600M GS Vendor ID 10de Device ID 0648 Adapter RAM 512 Adapter Drivers nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um Driver Version 8.17.12.6776 Driver Date 3-17-2011 Direct2D Enabled false DirectWrite Enabled false (6.1.7601.17563, font cache n/a) WebGL Renderer Google Inc. -- ANGLE -- OpenGL ES 2.0 (ANGLE 0.0.0.541) GPU Accelerated Windows 0/1
Severity: minor → S4
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: