Fix chat lines not word wrapped correct
authorsapier <Sapier at GMX dot net>
Thu, 25 Sep 2014 17:54:02 +0000 (19:54 +0200)
committersapier <Sapier at GMX dot net>
Thu, 25 Sep 2014 17:54:02 +0000 (19:54 +0200)
src/game.cpp

index 45b879ff23517dd898ffafcb7687e3ebd5790368..a8f6bc992bf417ff6796d7ceba061f9f1448e40c 100644 (file)
@@ -1102,8 +1102,16 @@ static void updateChat(Client& client, f32 dtime, bool show_debug,
        if (show_debug)
                chat_y += line_height;
 
-       core::rect<s32> rect(10, chat_y, font->getDimension(recent_chat.c_str()).Width +10,
-                       chat_y + (recent_chat_count * line_height));
+       // first pass to calculate height of text to be set
+       s32 width = std::min(font->getDimension(recent_chat.c_str()).Width + 10,
+                       porting::getWindowSize().X - 20);
+       core::rect<s32> rect(10, chat_y, width, chat_y + porting::getWindowSize().Y);
+       guitext_chat->setRelativePosition(rect);
+
+       //now use real height of text and adjust rect according to this size    
+       rect = core::rect<s32>(10, chat_y, width,
+                       chat_y + guitext_chat->getTextHeight());
+
 
        guitext_chat->setRelativePosition(rect);
        // Don't show chat if disabled or empty or profiler is enabled