aboutsummaryrefslogtreecommitdiff
path: root/src/client/gameui.cpp
diff options
context:
space:
mode:
authorDS <vorunbekannt75@web.de>2021-09-19 20:23:35 +0200
committerGitHub <noreply@github.com>2021-09-19 20:23:35 +0200
commite79d6154fc26b2a9bac242f0ac01ec785b5c53b1 (patch)
treeeb4587e1a83696f4e9d08531856a7170d019ae65 /src/client/gameui.cpp
parent40ea4ddef1fe56dab9a1479302f0b2578b4b0ed5 (diff)
downloadhax-minetest-server-e79d6154fc26b2a9bac242f0ac01ec785b5c53b1.tar.gz
hax-minetest-server-e79d6154fc26b2a9bac242f0ac01ec785b5c53b1.zip
Fix client-side performance of chat UI (#11612)
Diffstat (limited to 'src/client/gameui.cpp')
-rw-r--r--src/client/gameui.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/client/gameui.cpp b/src/client/gameui.cpp
index 9b77cf6ff..ecb8e0ec4 100644
--- a/src/client/gameui.cpp
+++ b/src/client/gameui.cpp
@@ -227,7 +227,13 @@ void GameUI::showTranslatedStatusText(const char *str)
void GameUI::setChatText(const EnrichedString &chat_text, u32 recent_chat_count)
{
+ setStaticText(m_guitext_chat, chat_text);
+ m_recent_chat_count = recent_chat_count;
+}
+
+void GameUI::updateChatSize()
+{
// Update gui element size and position
s32 chat_y = 5;
@@ -238,15 +244,15 @@ void GameUI::setChatText(const EnrichedString &chat_text, u32 recent_chat_count)
const v2u32 &window_size = RenderingEngine::getWindowSize();
- core::rect<s32> chat_size(10, chat_y,
- window_size.X - 20, 0);
+ core::rect<s32> chat_size(10, chat_y, window_size.X - 20, 0);
chat_size.LowerRightCorner.Y = std::min((s32)window_size.Y,
- m_guitext_chat->getTextHeight() + chat_y);
+ m_guitext_chat->getTextHeight() + chat_y);
- m_guitext_chat->setRelativePosition(chat_size);
- setStaticText(m_guitext_chat, chat_text);
+ if (chat_size == m_current_chat_size)
+ return;
+ m_current_chat_size = chat_size;
- m_recent_chat_count = recent_chat_count;
+ m_guitext_chat->setRelativePosition(chat_size);
}
void GameUI::updateProfiler()