Modals: fixed issue hovering popups inside a child inside a modal. Fixed IsWindowFocused()/IsWindowHovered() issues with childs inside popups. (#4676)(#4676, #4527)
Amend/fix 6b1e094f, fc4988ffb (Sep 24)
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index 90033f7..0ae0d0b 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -39,6 +39,8 @@
Other Changes:
- Added IsMouseTripleClicked() function. Tracking multi-click count in IO structure. (#3229) [@kudaba]
+- Modals: fixed issue hovering popups inside a child inside a modal. (#4676, #4527)
+- Fixed IsWindowFocused()/IsWindowHovered() issues with childs inside popups. (#4676)
- InputText: made double-click select word, triple-line select line. Word delimitation logic differs
slightly from the one used by CTRL+arrows. (#2244)
- Backends: Vulkan: Call vkCmdSetScissor() at the end of render with a full-viewport to reduce
diff --git a/imgui.cpp b/imgui.cpp
index 880c933..912d6c9 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -6719,9 +6719,14 @@
static ImGuiWindow* GetCombinedRootWindow(ImGuiWindow* window, bool popup_hierarchy)
{
- window = window->RootWindow;
- if (popup_hierarchy)
- window = window->RootWindowPopupTree;
+ ImGuiWindow* last_window = NULL;
+ while (last_window != window)
+ {
+ last_window = window;
+ window = window->RootWindow;
+ if (popup_hierarchy)
+ window = window->RootWindowPopupTree;
+ }
return window;
}