[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Mozillas DPI-hantering helgalen



Hanteringen av pixeltätheten i Mozilla Firefox i unstable verkar 
helgalen. Såvitt jag vet har det varit såhär länge, men jag har inte 
brytt mig om att undersöka saken närmare tidigare. Kan någon annan 
bekräfta detta? Finns det några sätt att kringgå problemet?

- Vare sig text eller andra objekt är så stora som de anges vara när man 
använder systemupplösningen.
- När den angivna upplösningen ökar blir objekt med storlek angiven i cm 
större (korrekt), medan text krymper (inkorrekt) och vice versa.

Jag har en 21-tumsskärm med 1600x1200 pixlar och följande rader i 
xorg.conf:

Section "Monitor"
        Identifier      "Intergraph 21sd95"
        Option          "DPMS"
        HorizSync       30-95
        VertRefresh     50-160
        DisplaySize     407 305
EndSection

Baserat på screen-avdelningen kan X beräkna en korrekt upplösning, och 
xdpyinfo rapporterar mycket riktigt följande:

$ xdpyinfo | grep -E 'dimensions|resolution'
  dimensions:    1600x1200 pixels (411x308 millimeters)
  resolution:    99x99 dots per inch

Alla KDE-program fungerar som de ska, och Firefox eget (GTK-renderade?) 
gränssnitt ser riktigt ut med rätt teckenstorlek. Problemet ligger 
istället med det som renderas av Geckomotorn.

Om man i de avancerade teckensnittsinställningarna i Firefox väljer att 
använda den upplösning som anges av systemet, eller anger "0" som värde 
för browser.display.screen_resolution i about:config) ger det följande 
resultat:

En 10 cmbred ruta är bara 9,4 cm bred när den visas i Firefox. Vad som 
ska vara 12 punkters teckenstorlek ser mer ut som 9½ punkter. 
Verklighetens 12 punkter ligger närmare vad Firefox tror är 16 punkter.

Om man istället specificerar upplösningen själv genom att mäta en linje 
som Firefox presenterar (7,4 cm) räknar Firefox ut att upplösningen är 
103 DPI, vilket väl får sägas ligga inom felmarginalen (anger man 7,7 
ger 99 DPI). Resultatet är i princip detsamma som om man använder 
systeminställningen.

Betydligt intressantare blir det om man specificerar en egen upplösning. 
Om man anger 150 DPI växer den 10 cm breda rutan 14 cm bred. Om man har 
en skärm som klämmer in fler pixlar per tum så ska Firefox givetvis 
använda fler pixlar för att nå upp till ett visst avstånd, så detta är 
helt riktigt. Vad som däremot är helknasigt är att texten istället 
krymper! Text som ska vara 12 punkter ligger nu närmare 5.

Om man istället ändrar upplösningen till 50 DPI blir resultatet det 
motsatta. Den 10 cm breda rutan krymper till 4,8 cm och 12-punktstexten 
växer till omkring 16 punkter.

-- 
Alexander Nordström
http://lx.n3.net/
Skicka inte kopior på uppföljande meddelanden till mig;
jag prenumererar på debian-user-swedish.

Attachment: pgp2CPTHsNW0S.pgp
Description: PGP signature


Reply to: