Clicking on void loses keyboard-focus so application can use TAB back

docking
ocornut 10 years ago
parent fe64da6197
commit c38c54af52

@ -2153,13 +2153,21 @@ void ImGui::Render()
g.CurrentWindow->Visible = false; g.CurrentWindow->Visible = false;
ImGui::End(); ImGui::End();
// Select window for move/focus when we're done with all our widgets (we use the root window ID here) if (g.ActiveId == 0 && g.HoveredId == 0 && g.IO.MouseClicked[0])
if (g.ActiveId == 0 && g.HoveredId == 0 && g.HoveredRootWindow != NULL && g.IO.MouseClicked[0]) {
if (g.HoveredRootWindow != NULL)
{ {
// Select window for move/focus when we're done with all our widgets (we use the root window ID here)
IM_ASSERT(g.MovedWindow == NULL); IM_ASSERT(g.MovedWindow == NULL);
g.MovedWindow = g.HoveredWindow; g.MovedWindow = g.HoveredWindow;
SetActiveId(g.HoveredRootWindow->MoveID); SetActiveId(g.HoveredRootWindow->MoveID);
} }
else if (g.FocusedWindow != NULL)
{
// Clicking on void disable focus
FocusWindow(NULL);
}
}
// Sort the window list so that all child windows are after their parent // Sort the window list so that all child windows are after their parent
// We cannot do that on FocusWindow() because childs may not exist yet // We cannot do that on FocusWindow() because childs may not exist yet

Loading…
Cancel
Save