Fixed child windows with the ImGuiWindowFlags_NoMove flag not taking direct focus

docking
ocornut 9 years ago
parent 43d073db1e
commit 466f01b313

@ -2258,12 +2258,16 @@ void ImGui::Render()
{ {
if (!(g.FocusedWindow && !g.FocusedWindow->WasActive && g.FocusedWindow->Active)) // Unless we just made a popup appear if (!(g.FocusedWindow && !g.FocusedWindow->WasActive && g.FocusedWindow->Active)) // Unless we just made a popup appear
{ {
if (g.HoveredRootWindow != NULL && !(g.HoveredWindow->Flags & ImGuiWindowFlags_NoMove)) if (g.HoveredRootWindow != NULL)
{
FocusWindow(g.HoveredWindow);
if (!(g.HoveredWindow->Flags & ImGuiWindowFlags_NoMove))
{ {
g.MovedWindow = g.HoveredWindow; g.MovedWindow = g.HoveredWindow;
SetActiveID(g.HoveredRootWindow->MoveID, g.HoveredRootWindow); SetActiveID(g.HoveredRootWindow->MoveID, g.HoveredRootWindow);
} }
else if (g.HoveredRootWindow == NULL && g.FocusedWindow != NULL && GetFrontMostModalRootWindow() == NULL) }
else if (g.FocusedWindow != NULL && GetFrontMostModalRootWindow() == NULL)
{ {
// Clicking on void disable focus // Clicking on void disable focus
FocusWindow(NULL); FocusWindow(NULL);

Loading…
Cancel
Save