1
0
mirror of https://github.com/Drezil/imgui.git synced 2024-12-26 09:36:35 +00:00

Nav, Focus: Fixed messed up Ctrl+Tab order with Docked windows.

Amend d9bca0d853, fc41839cab, fc42528f13 for docking.
This commit is contained in:
omar 2020-02-02 21:24:53 +01:00
parent 5be649e082
commit d4fc525614

View File

@ -6717,7 +6717,7 @@ void ImGui::FocusWindow(ImGuiWindow* window)
// Move the root window to the top of the pile
IM_ASSERT(window->RootWindow != NULL);
ImGuiWindow* focus_front_window = window->RootWindow; // NB: In docking branch this is window->RootWindowDockStop
ImGuiWindow* focus_front_window = window->RootWindowDockStop;
ImGuiWindow* display_front_window = window->RootWindow;
// Steal focus on active widgets
@ -6727,7 +6727,7 @@ void ImGui::FocusWindow(ImGuiWindow* window)
// Bring to front
BringWindowToFocusFront(focus_front_window);
if (((window->Flags | display_front_window->Flags) & ImGuiWindowFlags_NoBringToFrontOnFocus) == 0)
if (((window->Flags | focus_front_window->Flags | display_front_window->Flags) & ImGuiWindowFlags_NoBringToFrontOnFocus) == 0)
BringWindowToDisplayFront(display_front_window);
}
@ -9532,7 +9532,7 @@ static void ImGui::NavUpdateWindowing()
if (start_windowing_with_gamepad || start_windowing_with_keyboard)
if (ImGuiWindow* window = g.NavWindow ? g.NavWindow : FindWindowNavFocusable(g.WindowsFocusOrder.Size - 1, -INT_MAX, -1))
{
g.NavWindowingTarget = g.NavWindowingTargetAnim = window->RootWindow; // FIXME-DOCK: Will need to use RootWindowDockStop
g.NavWindowingTarget = g.NavWindowingTargetAnim = window->RootWindowDockStop;
g.NavWindowingTimer = g.NavWindowingHighlightAlpha = 0.0f;
g.NavWindowingToggleLayer = start_windowing_with_keyboard ? false : true;
g.NavInputSource = start_windowing_with_keyboard ? ImGuiInputSource_NavKeyboard : ImGuiInputSource_NavGamepad;