Fix alignment of text with negative right bearing
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
Tue, 9 Mar 2010 13:13:58 +0000 (14:13 +0100)
committerEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
Tue, 9 Mar 2010 14:04:09 +0000 (15:04 +0100)
commitd85b149a5c7f3532f8e1a593a79298c9ae38a95f
tree61446d8e6a65ccc2fa0c30c2b2a345a47895b77d
parent6396e7a15079cb157caef319348a0bcd0b95a6a7
Fix alignment of text with negative right bearing

In change 5364fd96a72c89b281f0540da909fe64d0575ccf and some related
changes, we made sure that the natural text width used for calculating
bounding rects and line breaks in the text, takes the right bearing
of the last glyph into consideration.

As a side-effect, this broke alignment of text, as we want to align
based on the accumulated advance of the glyphs, not based on the actual
width. This is in particular important when aligning monospaced text,
since the text can become misaligned if the glyphs extend beyond their
advance. The bug was visible e.g. in line numbers ending with 2 in
Qt Creator on X11, which would be shifted one pixel to the left compared
to other line numbers.

Task-number: QTBUG-8864
Reviewed-by: Thorbjørn
src/gui/painting/qpainter.cpp
src/gui/text/qtextengine_p.h
src/gui/text/qtextlayout.cpp