aboutsummaryrefslogtreecommitdiff
path: root/src/chat.h
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/chat.h
parent40ea4ddef1fe56dab9a1479302f0b2578b4b0ed5 (diff)
downloadminetest-e79d6154fc26b2a9bac242f0ac01ec785b5c53b1.tar.gz
minetest-e79d6154fc26b2a9bac242f0ac01ec785b5c53b1.tar.bz2
minetest-e79d6154fc26b2a9bac242f0ac01ec785b5c53b1.zip
Fix client-side performance of chat UI (#11612)
Diffstat (limited to 'src/chat.h')
-rw-r--r--src/chat.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/chat.h b/src/chat.h
index aabb0821e..696d805eb 100644
--- a/src/chat.h
+++ b/src/chat.h
@@ -113,6 +113,13 @@ public:
// Scroll to top of buffer (oldest)
void scrollTop();
+ // Functions for keeping track of whether the lines were modified by any
+ // preceding operations
+ // If they were not changed, getLineCount() and getLine() output the same as
+ // before
+ bool getLinesModified() const { return m_lines_modified; }
+ void resetLinesModified() { m_lines_modified = false; }
+
// Format a chat line for the given number of columns.
// Appends the formatted lines to the destination array and
// returns the number of formatted lines.
@@ -146,6 +153,11 @@ private:
bool m_cache_clickable_chat_weblinks;
// Color of clickable chat weblinks
irr::video::SColor m_cache_chat_weblink_color;
+
+ // Whether the lines were modified since last markLinesUnchanged()
+ // Is always set to true when m_unformatted is modified, because that's what
+ // determines the output of getLineCount() and getLine()
+ bool m_lines_modified = true;
};
class ChatPrompt