mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-26 13:37:00 +00:00
Nav: CalcListClipping/ImGuiListClipper: fix to ensure we can navigate clipped lists (#323)
This commit is contained in:
parent
b3ddae07d1
commit
cbe03e3108
@ -3509,6 +3509,11 @@ void ImGui::CalcListClipping(int items_count, float items_height, int* out_items
|
|||||||
const ImVec2 pos = window->DC.CursorPos;
|
const ImVec2 pos = window->DC.CursorPos;
|
||||||
int start = (int)((window->ClipRect.Min.y - pos.y) / items_height);
|
int start = (int)((window->ClipRect.Min.y - pos.y) / items_height);
|
||||||
int end = (int)((window->ClipRect.Max.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);
|
start = ImClamp(start, 0, items_count);
|
||||||
end = ImClamp(end + 1, start, items_count);
|
end = ImClamp(end + 1, start, items_count);
|
||||||
*out_items_display_start = start;
|
*out_items_display_start = start;
|
||||||
|
Loading…
Reference in New Issue
Block a user