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
Or Ctrl+Shift+I, if you find that easier to remember (I as inspector) :-)
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.
What, that's a one hell of a debug story. Awesome job.