Notes |
|
|
I can answer the question "Does this happen on other PPC platforms?" with a "No" (at least for AmigaOS 4.1).
However, I have noticed the same problem after scaling, which persists to some extent when the scale is reset. I've attached the normal and a scaled in screenshot. I've never investigated whether scaling causes such problems on other platforms. |
|
|
|
I can reproduce this on i386 GTK after playing with the scaling, leaving that as it is and then moving to this page I'm getting some character overlapping here too. Even worse, when typing in the input box the cursor is 2 characters in front of what I'm typing when I get to the right-hand side of the input box, which I guess is related (at the left it lines up correctly). |
|
|
|
Scaling is a different issue; we currently expect text size to increase linearly with scale, which is wrong for font renderers that try to minimise blurriness by bodging glyph shapes to fit the pixel grid.
I don't know what the original issue is. Check that scale is 1:1, and experiment with the DPI setting. |
|
|
|
Happens with scale 1:1 (and other scales). Will try fiddling with the DPI... based on the GTK widgets that definitely differs from my amd64 setup. |
|
|
|
This almost looks like the font width calculator is not producing the same width as when we actually render. |
|
|
|
Confirmed to be a DPI problem: the bad screenshot had a DPI of 86 according to xdpyinfo, while the good screenshot had a DPI of 96. Manually setting the dpi to 86 on the "good" machine results in an identical spacing problem.
Looks like PowerPC was a red herring.
|
|
|
(0000475)
|
Michael Drake
|
2014-09-06 12:49
(Last edited: 2014-09-06 12:50) |
|
11:57 <@tlsa> the problem is:
11:58 <@tlsa> nsfont_paint creates a PangoLayout from the current_cr
11:58 <@tlsa> which only exists durng redraw
11:59 <@tlsa> the font measuring stuff only calls pango_layout_new
11:59 <@tlsa> to get a PangoLayout
11:59 <@tlsa> and that knows nothing about the DPI
12:01 <@tlsa> context = gdk_pango_context_get();
12:01 <@tlsa> layout = pango_layout_new(context);
12:01 <@tlsa> that's for measuring
12:01 <@tlsa> layout = pango_cairo_create_layout(current_cr);
12:01 <@tlsa> that's for painting
|
|
|
|
Updated title, to reflect the bug. |
|
|
|
|
|
|
Thankyou for your report, this has been resolved in the 3.7 release |
|