From 10b3bcb90c5130e661767443cb391bb9d8645f8f Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 28 Aug 2009 15:23:51 +0000 Subject: [PATCH] (svn r17299) -Fix: the tooltip could get truncated under some circumstances due to its custom string height determination --- src/misc_gui.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index d6b5d7e83a..bec5db1622 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -768,7 +768,7 @@ struct TooltipsWindow : public Window for (uint arg = 0; arg < this->paramcount; arg++) { SetDParam(arg, this->params[arg]); } - DrawStringMultiLine(1, this->width - 1, 0, this->height, this->string_id, TC_FROMSTRING, SA_CENTER); + DrawStringMultiLine(3, this->width - 3, 0, this->height, this->string_id, TC_FROMSTRING, SA_CENTER); } virtual void OnMouseLoop() @@ -797,14 +797,13 @@ void GuiShowTooltips(StringID str, uint paramcount, const uint64 params[], bool char buffer[512]; GetString(buffer, str, lastof(buffer)); - Dimension br = GetStringBoundingBox(buffer); - br.width += 6; br.height += 4; // increase slightly to have some space around the box + Dimension br; + br.width = min(GetStringBoundingBox(buffer).width, 194); + br.height = GetStringHeight(str, br.width); - /* Cut tooltip length to 200 pixels max, wrap to new line if longer */ - if (br.width > 200) { - br.height += ((br.width - 4) / 176) * 10; - br.width = 200; - } + /* increase slightly to have some space around the box */ + br.width += 6; + br.height += 4; /* Correctly position the tooltip position, watch out for window and cursor size * Clamp value to below main toolbar and above statusbar. If tooltip would