diff --git a/src/network/network_chat_gui.cpp b/src/network/network_chat_gui.cpp index 57c4ac6c3e..ce6064e8c1 100644 --- a/src/network/network_chat_gui.cpp +++ b/src/network/network_chat_gui.cpp @@ -112,16 +112,22 @@ void CDECL NetworkAddChatMessage(TextColour colour, uint8 duration, const char * _chatmessage_dirty = true; } +/** Initialize all font-dependent chat box sizes. */ +void NetworkReInitChatBoxSize() +{ + _chatmsg_box.y = 3 * FONT_HEIGHT_NORMAL; + _chatmsg_box.height = MAX_CHAT_MESSAGES * (FONT_HEIGHT_NORMAL + NETWORK_CHAT_LINE_SPACING) + 2; + _chatmessage_backup = ReallocT(_chatmessage_backup, _chatmsg_box.width * _chatmsg_box.height * BlitterFactoryBase::GetCurrentBlitter()->GetBytesPerPixel()); +} + void NetworkInitChatMessage() { MAX_CHAT_MESSAGES = _settings_client.gui.network_chat_box_height; _chatmsg_list = ReallocT(_chatmsg_list, _settings_client.gui.network_chat_box_height); _chatmsg_box.x = 10; - _chatmsg_box.y = 3 * FONT_HEIGHT_NORMAL; _chatmsg_box.width = _settings_client.gui.network_chat_box_width; - _chatmsg_box.height = _settings_client.gui.network_chat_box_height * (FONT_HEIGHT_NORMAL + NETWORK_CHAT_LINE_SPACING) + 2; - _chatmessage_backup = ReallocT(_chatmessage_backup, _chatmsg_box.width * _chatmsg_box.height * BlitterFactoryBase::GetCurrentBlitter()->GetBytesPerPixel()); + NetworkReInitChatBoxSize(); _chatmessage_visible = false; for (uint i = 0; i < MAX_CHAT_MESSAGES; i++) { diff --git a/src/window.cpp b/src/window.cpp index 091528c11b..bc4f31ed14 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -2619,6 +2619,10 @@ void ReInitAllWindows() FOR_ALL_WINDOWS_FROM_BACK(w) { w->ReInit(); } +#ifdef ENABLE_NETWORK + void NetworkReInitChatBoxSize(); + NetworkReInitChatBoxSize(); +#endif /* Make sure essential parts of all windows are visible */ RelocateAllWindows(_cur_resolution.width, _cur_resolution.height);