Skip to content

Commit

Permalink
GUI: Autofocus newly opened GUIModalMenu instances
Browse files Browse the repository at this point in the history
This in particular fixes incorrect event propagation to menus that
are no longer shown, such as the key change menu when opened within
the settings tab.
  • Loading branch information
SmallJoker committed Oct 21, 2023
1 parent 8a98552 commit a71b85a
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 3 deletions.
1 change: 0 additions & 1 deletion src/gui/guiChatConsole.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,6 @@ void GUIChatConsole::openConsole(f32 scale)
reformatConsole();
m_animate_time_old = porting::getTimeMs();
IGUIElement::setVisible(true);
Environment->setFocus(this);
m_menumgr->createdMenu(this);
}

Expand Down
5 changes: 4 additions & 1 deletion src/gui/mainmenumanager.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,15 +57,18 @@ class MainMenuManager : public IMenuManager
if(!m_stack.empty())
m_stack.back()->setVisible(false);
m_stack.push_back(menu);
guienv->setFocus(m_stack.back());
}

virtual void deletingMenu(gui::IGUIElement *menu)
{
// Remove all entries if there are duplicates
m_stack.remove(menu);

if(!m_stack.empty())
if(!m_stack.empty()) {
m_stack.back()->setVisible(true);
guienv->setFocus(m_stack.back());
}
}

// Returns true to prevent further processing
Expand Down
1 change: 0 additions & 1 deletion src/gui/modalMenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ GUIModalMenu::GUIModalMenu(gui::IGUIEnvironment* env, gui::IGUIElement* parent,
#endif

setVisible(true);
Environment->setFocus(this);
m_menumgr->createdMenu(this);

m_doubleclickdetect[0].time = 0;
Expand Down

0 comments on commit a71b85a

Please sign in to comment.