|
@@ -2771,25 +2771,28 @@ void ImGui::EndFrame()
|
|
|
g.CurrentWindow->Active = false;
|
|
|
ImGui::End();
|
|
|
|
|
|
- // Click to focus window and start moving (after we're done with all our widgets)
|
|
|
- if (g.ActiveId == 0 && g.HoveredId == 0 && g.IO.MouseClicked[0])
|
|
|
+ if (g.ActiveId == 0 && g.HoveredId == 0)
|
|
|
{
|
|
|
- if (!(g.NavWindow && !g.NavWindow->WasActive && g.NavWindow->Active)) // Unless we just made a popup appear
|
|
|
+ if (!g.NavWindow || g.NavWindow->WasActive || !g.NavWindow->Active) // Unless we just made a popup appear
|
|
|
{
|
|
|
- if (g.HoveredRootWindow != NULL)
|
|
|
+ // Click to focus window and start moving (after we're done with all our widgets)
|
|
|
+ if (g.IO.MouseClicked[0])
|
|
|
{
|
|
|
- FocusWindow(g.HoveredWindow);
|
|
|
- if (!(g.HoveredWindow->Flags & ImGuiWindowFlags_NoMove))
|
|
|
+ if (g.HoveredRootWindow != NULL)
|
|
|
{
|
|
|
- g.MovedWindow = g.HoveredWindow;
|
|
|
- g.MovedWindowMoveId = g.HoveredWindow->MoveId;
|
|
|
- SetActiveID(g.MovedWindowMoveId, g.HoveredRootWindow);
|
|
|
+ FocusWindow(g.HoveredWindow);
|
|
|
+ if (!(g.HoveredWindow->Flags & ImGuiWindowFlags_NoMove))
|
|
|
+ {
|
|
|
+ g.MovedWindow = g.HoveredWindow;
|
|
|
+ g.MovedWindowMoveId = g.HoveredWindow->MoveId;
|
|
|
+ SetActiveID(g.MovedWindowMoveId, g.HoveredRootWindow);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (g.NavWindow != NULL && GetFrontMostModalRootWindow() == NULL)
|
|
|
+ {
|
|
|
+ // Clicking on void disable focus
|
|
|
+ FocusWindow(NULL);
|
|
|
}
|
|
|
- }
|
|
|
- else if (g.NavWindow != NULL && GetFrontMostModalRootWindow() == NULL)
|
|
|
- {
|
|
|
- // Clicking on void disable focus
|
|
|
- FocusWindow(NULL);
|
|
|
}
|
|
|
}
|
|
|
}
|