Fix inconsistent vertical centring of text in GTK (and update Solo's

todo list, which complained about this because Solo was the only
puzzle noticeably affected).

[originally from svn r5694]
This commit is contained in:
Simon Tatham
2005-04-27 19:44:34 +00:00
parent 37a0c1af6a
commit 3d4f276f1f
2 changed files with 14 additions and 9 deletions

15
gtk.c
View File

@ -219,11 +219,24 @@ void draw_text(frontend *fe, int x, int y, int fonttype, int fontsize,
{
int lb, rb, wid, asc, desc;
gdk_string_extents(fe->fonts[i].font, text,
/*
* Measure vertical string extents with respect to the same
* string always...
*/
gdk_string_extents(fe->fonts[i].font,
"ABCDEFGHIJKLMNOPQRSTUVWXYZ",
&lb, &rb, &wid, &asc, &desc);
if (align & ALIGN_VCENTRE)
y += asc - (asc+desc)/2;
/*
* ... but horizontal extents with respect to the provided
* string. This means that multiple pieces of text centred
* on the same y-coordinate don't have different baselines.
*/
gdk_string_extents(fe->fonts[i].font, text,
&lb, &rb, &wid, &asc, &desc);
if (align & ALIGN_HCENTRE)
x -= wid / 2;
else if (align & ALIGN_HRIGHT)