Nav: CalcListClipping/ImGuiListClipper: fix to ensure we can navigate clipped lists (#323)

This commit is contained in:
ocornut 2016-07-30 11:22:18 +02:00
parent b3ddae07d1
commit cbe03e3108

View File

@ -3509,6 +3509,11 @@ void ImGui::CalcListClipping(int items_count, float items_height, int* out_items
const ImVec2 pos = window->DC.CursorPos;
int start = (int)((window->ClipRect.Min.y - pos.y) / items_height);
int end = (int)((window->ClipRect.Max.y - pos.y) / items_height);
if (g.NavMoveRequest && g.NavMoveDir == ImGuiNavDir_N) // When performing a navigation request, ensure we have one item extra in the direction we are moving to
start--;
if (g.NavMoveRequest && g.NavMoveDir == ImGuiNavDir_S)
end++;
start = ImClamp(start, 0, items_count);
end = ImClamp(end + 1, start, items_count);
*out_items_display_start = start;