Chat console: Prevent input loss on double open

This commit is contained in:
SmallJoker 2024-04-30 20:14:20 +02:00 committed by sfan5
parent c352fbf5c9
commit f0bb5313d3
2 changed files with 8 additions and 4 deletions

@ -106,9 +106,13 @@ GUIChatConsole::~GUIChatConsole()
void GUIChatConsole::openConsole(f32 scale) void GUIChatConsole::openConsole(f32 scale)
{ {
if (m_open)
return;
assert(scale > 0.0f && scale <= 1.0f); assert(scale > 0.0f && scale <= 1.0f);
m_open = true; m_open = true;
m_desired_height_fraction = scale; m_desired_height_fraction = scale;
m_desired_height = scale * m_screensize.Y; m_desired_height = scale * m_screensize.Y;
reformatConsole(); reformatConsole();

@ -48,14 +48,14 @@ class MainMenuManager : public IMenuManager
public: public:
virtual void createdMenu(gui::IGUIElement *menu) virtual void createdMenu(gui::IGUIElement *menu)
{ {
#ifndef NDEBUG for (gui::IGUIElement *e : m_stack) {
for (gui::IGUIElement *i : m_stack) { if (e == menu)
assert(i != menu); return;
} }
#endif
if(!m_stack.empty()) if(!m_stack.empty())
m_stack.back()->setVisible(false); m_stack.back()->setVisible(false);
m_stack.push_back(menu); m_stack.push_back(menu);
guienv->setFocus(m_stack.back()); guienv->setFocus(m_stack.back());
} }