mirror of
https://github.com/ocornut/imgui.git
synced 2026-01-17 01:04:19 +00:00
Menus, Popups: Experimental fix for issue where clicking on an open BeginMenu() item called from a window which is neither a popup neither a menu used to incorrectly close and reopen the menu. (#5775)
This works by moving the ClosePopupsOverWindow() in FocusWindow() in the if() block which luckily solves our problem. In our test suite I couldn't find situation where this had side-effect others than BeginMenu() using the 'menuset_is_open' trick. It's difficult to tell if other side-effects are possible: a window being already focused should mean it doesn't have popups overit. Effectively this means that clicking e.g. on the BeginMenu() item to close a menu in a menu-bar now relies on BeginMenu() logic for the closure rather than FocusWindow() triggerd by button behavior.
This commit is contained in:
parent
81176737f8
commit
08752b372e
2 changed files with 6 additions and 3 deletions
|
|
@ -7025,10 +7025,10 @@ void ImGui::FocusWindow(ImGuiWindow* window)
|
|||
g.NavLayer = ImGuiNavLayer_Main;
|
||||
g.NavFocusScopeId = 0;
|
||||
g.NavIdIsAlive = false;
|
||||
}
|
||||
|
||||
// Close popups if any
|
||||
ClosePopupsOverWindow(window, false);
|
||||
// Close popups if any
|
||||
ClosePopupsOverWindow(window, false);
|
||||
}
|
||||
|
||||
// Move the root window to the top of the pile
|
||||
IM_ASSERT(window == NULL || window->RootWindow != NULL);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue