Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
ShadowNinja committed Mar 12, 2016
1 parent 20312fd commit 8c951ca
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
17 changes: 17 additions & 0 deletions src/guiChatConsole.cpp
Expand Up @@ -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);
}
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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();
}
}

2 changes: 2 additions & 0 deletions src/guiChatConsole.h
Expand Up @@ -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();
Expand Down

0 comments on commit 8c951ca

Please sign in to comment.