diff --git a/voxygen/src/hud/chat.rs b/voxygen/src/hud/chat.rs index ef5efcfd91..40afe22e44 100644 --- a/voxygen/src/hud/chat.rs +++ b/voxygen/src/hud/chat.rs @@ -17,6 +17,8 @@ widget_ids! { } } +const MAX_MESSAGES: usize = 100; + #[derive(WidgetCommon)] pub struct Chat<'a> { new_messages: &'a mut VecDeque, @@ -91,6 +93,13 @@ impl<'a> Widget for Chat<'a> { ui.scroll_widget(state.ids.message_box, [0.0, std::f64::MAX]); } + // Empty old messages + state.update(|s| { + while s.messages.len() > MAX_MESSAGES { + s.messages.pop_back(); + } + }); + let keyboard_capturer = ui.global_input().current.widget_capturing_keyboard; let input_focused = keyboard_capturer == Some(state.ids.input);