mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
Popups & Modals: fixed nested Begin() being erroneously input-inhibited. (useful for e.g. #718, #4461 and probably other things)
This commit is contained in:
parent
472f8013bd
commit
440f257688
@ -84,6 +84,9 @@ Breaking changes:
|
|||||||
|
|
||||||
Other Changes:
|
Other Changes:
|
||||||
|
|
||||||
|
- Popups & Modals: fixed nested Begin() being erroneously input-inhibited. While it is
|
||||||
|
unusual, you can nest a Begin() inside a popup or modal, it is occasionally useful to
|
||||||
|
achieve certains things (e.g. some ways to implement suggestion popup #718, #4461).
|
||||||
- InputText: added experimental io.ConfigInputTextEnterKeepActive feature to make pressing
|
- InputText: added experimental io.ConfigInputTextEnterKeepActive feature to make pressing
|
||||||
Enter keep the input active and select all text.
|
Enter keep the input active and select all text.
|
||||||
- InputText: numerical fields automatically accept full-width characters (U+FF01..U+FF5E)
|
- InputText: numerical fields automatically accept full-width characters (U+FF01..U+FF5E)
|
||||||
|
14
imgui.cpp
14
imgui.cpp
@ -3539,11 +3539,17 @@ static inline bool IsWindowContentHoverable(ImGuiWindow* window, ImGuiHoveredFla
|
|||||||
if (focused_root_window->WasActive && focused_root_window != window->RootWindow)
|
if (focused_root_window->WasActive && focused_root_window != window->RootWindow)
|
||||||
{
|
{
|
||||||
// For the purpose of those flags we differentiate "standard popup" from "modal popup"
|
// For the purpose of those flags we differentiate "standard popup" from "modal popup"
|
||||||
// NB: The order of those two tests is important because Modal windows are also Popups.
|
// NB: The 'else' is important because Modal windows are also Popups.
|
||||||
|
bool want_inhibit = false;
|
||||||
if (focused_root_window->Flags & ImGuiWindowFlags_Modal)
|
if (focused_root_window->Flags & ImGuiWindowFlags_Modal)
|
||||||
return false;
|
want_inhibit = true;
|
||||||
if ((focused_root_window->Flags & ImGuiWindowFlags_Popup) && !(flags & ImGuiHoveredFlags_AllowWhenBlockedByPopup))
|
else if ((focused_root_window->Flags & ImGuiWindowFlags_Popup) && !(flags & ImGuiHoveredFlags_AllowWhenBlockedByPopup))
|
||||||
return false;
|
want_inhibit = true;
|
||||||
|
|
||||||
|
// Inhibit hover unless the window is within the stack of our modal/popup
|
||||||
|
if (want_inhibit)
|
||||||
|
if (!ImGui::IsWindowWithinBeginStackOf(window->RootWindow, focused_root_window))
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
2
imgui.h
2
imgui.h
@ -23,7 +23,7 @@
|
|||||||
// Library Version
|
// Library Version
|
||||||
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM > 12345')
|
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM > 12345')
|
||||||
#define IMGUI_VERSION "1.89 WIP"
|
#define IMGUI_VERSION "1.89 WIP"
|
||||||
#define IMGUI_VERSION_NUM 18819
|
#define IMGUI_VERSION_NUM 18820
|
||||||
#define IMGUI_HAS_TABLE
|
#define IMGUI_HAS_TABLE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user