Skip to content
Snippets Groups Projects
Commit 8c951cae authored by ShadowNinja's avatar ShadowNinja
Browse files

Fix chat console not opening after formspec opened over it

The MainMenuManager set the console invisible when a
formspec opened over it, but didn't properly close it,
and the chat console never set itself visible again.
parent 20312fda
No related branches found
No related tags found
No related merge requests found
......@@ -122,6 +122,8 @@ void GUIChatConsole::openConsole(f32 height)
m_desired_height_fraction = height;
m_desired_height = height * m_screensize.Y;
reformatConsole();
m_animate_time_old = getTimeMs();
IGUIElement::setVisible(true);
Environment->setFocus(this);
m_menumgr->createdMenu(this);
}
......@@ -243,6 +245,11 @@ void GUIChatConsole::animate(u32 msec)
{
// animate the console height
s32 goal = m_open ? m_desired_height : 0;
// Set invisible if close animation finished (reset by openConsole)
if (!m_open && m_height == 0)
IGUIElement::setVisible(false);
if (m_height != goal)
{
s32 max_change = msec * m_screensize.Y * (m_height_speed / 1000.0);
......@@ -628,3 +635,13 @@ bool GUIChatConsole::OnEvent(const SEvent& event)
return Parent ? Parent->OnEvent(event) : false;
}
void GUIChatConsole::setVisible(bool visible)
{
m_open = visible;
IGUIElement::setVisible(visible);
if (!visible) {
m_height = 0;
recalculateConsolePosition();
}
}
......@@ -77,6 +77,8 @@ class GUIChatConsole : public gui::IGUIElement
virtual bool OnEvent(const SEvent& event);
virtual void setVisible(bool visible);
private:
void reformatConsole();
void recalculateConsolePosition();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment