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_fraction = height;
|
||||||
m_desired_height = height * m_screensize.Y;
|
m_desired_height = height * m_screensize.Y;
|
||||||
reformatConsole();
|
reformatConsole();
|
||||||
|
m_animate_time_old = getTimeMs();
|
||||||
|
IGUIElement::setVisible(true);
|
||||||
Environment->setFocus(this);
|
Environment->setFocus(this);
|
||||||
m_menumgr->createdMenu(this);
|
m_menumgr->createdMenu(this);
|
||||||
}
|
}
|
||||||
@ -243,6 +245,11 @@ void GUIChatConsole::animate(u32 msec)
|
|||||||
{
|
{
|
||||||
// animate the console height
|
// animate the console height
|
||||||
s32 goal = m_open ? m_desired_height : 0;
|
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)
|
if (m_height != goal)
|
||||||
{
|
{
|
||||||
s32 max_change = msec * m_screensize.Y * (m_height_speed / 1000.0);
|
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;
|
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 bool OnEvent(const SEvent& event);
|
||||||
|
|
||||||
|
virtual void setVisible(bool visible);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void reformatConsole();
|
void reformatConsole();
|
||||||
void recalculateConsolePosition();
|
void recalculateConsolePosition();
|
||||||
|
Loading…
Reference in New Issue
Block a user