鏡像自
https://github.com/luanti-org/luanti.git
已同步 2025-11-09 03:25:28 +01:00
GUI: Autofocus newly opened GUIModalMenu instances (#13911)
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.
此提交包含在:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -57,6 +57,7 @@ public:
|
||||
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)
|
||||
@@ -64,8 +65,10 @@ public:
|
||||
// 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
|
||||
|
||||
@@ -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;
|
||||
|
||||
新增問題並參考
封鎖使用者