On Tue, 2015-07-07 at 15:45 -0700, Adam Williamson wrote: > > An interesting case I just discovered is that if I set GNOME's 'text > scaling factor' to 1.01 on the Workstation live, it makes the glyph > heights the same as in boot.iso, but there are still some very subtle > differences in the rendering: for e.g. the kerning is a bit different > (there's a one pixel gap between the 'D' and the 'o' of 'Done' in > Workstation-at-1.01 while on boot.iso there's no gap).
Just to further update this, we've more or less pinned it down now. mclasen was extremely helpful in chasing it through various obscure bits of X11 and GTK+. There's a neat GTK+ debugging thing called the GtkInspector which you can launch from any GTK+ 3 app with shift+ctrl+D. From that you can look at Properties then GtkSettings, and look at the gtk-xft-* settings. I noticed two significant differences between anaconda running from boot.iso or KDE live and anaconda running from Workstation live, both at 1024x768 in a VM. gtk-xft-hintstyle is 'medium' in Workstation but 'full' in boot.iso/KDE, and gtk-xft-dpi is 98304 in Workstation but 98401 in boot.iso/KDE. That value is a DPI multiplied by 1024; Workstation's is exactly 96 (98304/1024 = 96), boot.iso/KDE is...a little bit more than 96. Basically we figured out that for some reason the defaults that should be set by /etc/X11/Xresources don't seem to actually be merged into X, in boot.iso and KDE live image at least. So GDK (part of GTK+) falls back on its internal defaults for hinting style and display resolution (DPI). Its default for hinting style, in the absence of any external indication, is 'hintfull', and its default for DPI is to actually calculate the 'correct' DPI for the display. It turns out that a KVM at 1024x768 reports its "monitor's" vertical size as 203mm; if you reproduce GDK's calculation with 768 pixels and 203mm: 768 (pixel height) * 25.4 (inches to MM) / 203 (height in MM) * 1024 (GDK's multiplication factor) ~= 98401 (actually a bit lower but it gets rounded to the nearest integer) and that's where the weird 98401 value comes from. From here there's a few angles of attack: 1) Why does libvirt/qemu/whatever report a display size which doesn't *quite* give a resolution of exactly 96dpi? 2) Why don't the settings in /etc/X11/Xresources actually get merged into X config? (/etc/X11/xinitrc-common looks like it ought to do this) 3) Should GDK just use the same defaults we've tried to put in to X (/etc/X11/Xresources) and GNOME (g-s-d defaults) - i.e. medium hinting and 96dpi? which we'll look into tomorrow, cos I've got to go out for dinner now...:) -- Adam Williamson Fedora QA Community Monkey IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net http://www.happyassassin.net _______________________________________________ qa-devel mailing list qa-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/qa-devel