From f0bb5313d3a1298ae0821e73dab7f80ec22bb439 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Tue, 30 Apr 2024 20:14:20 +0200 Subject: [PATCH] Chat console: Prevent input loss on double open --- src/gui/guiChatConsole.cpp | 4 ++++ src/gui/mainmenumanager.h | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/gui/guiChatConsole.cpp b/src/gui/guiChatConsole.cpp index 243828df0..c04eeebc3 100644 --- a/src/gui/guiChatConsole.cpp +++ b/src/gui/guiChatConsole.cpp @@ -106,9 +106,13 @@ GUIChatConsole::~GUIChatConsole() void GUIChatConsole::openConsole(f32 scale) { + if (m_open) + return; + assert(scale > 0.0f && scale <= 1.0f); m_open = true; + m_desired_height_fraction = scale; m_desired_height = scale * m_screensize.Y; reformatConsole(); diff --git a/src/gui/mainmenumanager.h b/src/gui/mainmenumanager.h index 05d7c8974..25ff475f4 100644 --- a/src/gui/mainmenumanager.h +++ b/src/gui/mainmenumanager.h @@ -48,14 +48,14 @@ class MainMenuManager : public IMenuManager public: virtual void createdMenu(gui::IGUIElement *menu) { -#ifndef NDEBUG - for (gui::IGUIElement *i : m_stack) { - assert(i != menu); + for (gui::IGUIElement *e : m_stack) { + if (e == menu) + return; } -#endif if(!m_stack.empty()) m_stack.back()->setVisible(false); + m_stack.push_back(menu); guienv->setFocus(m_stack.back()); }