aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 45b879ff2..a8f6bc992 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -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