Fixed cursor issue caused by 6890e08b when calling BeginChild/EndChild multiple times to reappend into a same child window. (#2282)

This commit is contained in:
omar 2019-01-15 15:05:56 +01:00
parent 7a5058e3bf
commit b8c6e31c2d
2 changed files with 3 additions and 2 deletions

View File

@ -4276,7 +4276,8 @@ static bool ImGui::BeginChildEx(const char* name, ImGuiID id, const ImVec2& size
// Set the cursor to handle case where the user called SetNextWindowPos()+BeginChild() manually. // Set the cursor to handle case where the user called SetNextWindowPos()+BeginChild() manually.
// While this is not really documented/defined, it seems that the expected thing to do. // While this is not really documented/defined, it seems that the expected thing to do.
parent_window->DC.CursorPos = child_window->Pos; if (child_window->BeginCount == 1)
parent_window->DC.CursorPos = child_window->Pos;
// Process navigation-in immediately so NavInit can run on first frame // Process navigation-in immediately so NavInit can run on first frame
if (g.NavActivateId == id && !(flags & ImGuiWindowFlags_NavFlattened) && (child_window->DC.NavLayerActiveMask != 0 || child_window->DC.NavHasScroll)) if (g.NavActivateId == id && !(flags & ImGuiWindowFlags_NavFlattened) && (child_window->DC.NavLayerActiveMask != 0 || child_window->DC.NavHasScroll))

View File

@ -1983,7 +1983,7 @@ static void ShowDemoWindowLayout()
{ {
ImGui::BeginChild("scrolling"); // Demonstrate a trick: you can use Begin to set yourself in the context of another window (here we are already out of your child window) ImGui::BeginChild("scrolling"); // Demonstrate a trick: you can use Begin to set yourself in the context of another window (here we are already out of your child window)
ImGui::SetScrollX(ImGui::GetScrollX() + scroll_x_delta); ImGui::SetScrollX(ImGui::GetScrollX() + scroll_x_delta);
ImGui::End(); ImGui::EndChild();
} }
ImGui::TreePop(); ImGui::TreePop();
} }