forked from Mirrorlandia_minetest/minetest
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.
This commit is contained in:
parent
20312fda18
commit
8c951cae5b
@ -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 @@ public:
|
||||
|
||||
virtual bool OnEvent(const SEvent& event);
|
||||
|
||||
virtual void setVisible(bool visible);
|
||||
|
||||
private:
|
||||
void reformatConsole();
|
||||
void recalculateConsolePosition();
|
||||
|
Loading…
Reference in New Issue
Block a user