|
@@ -1622,12 +1622,14 @@ float ImGuiSimpleColumns::CalcExtraSpace(float avail_w)
|
|
|
|
|
|
static void SetCursorPosYAndSetupDummyPrevLine(float pos_y, float line_height)
|
|
|
{
|
|
|
- // Setting those fields so that SetScrollHere() can properly function after the end of our clipper usage.
|
|
|
- // If we end up needing more accurate data (to e.g. use SameLine) we may as well make the clipper have a fourth step to let user process and display the last item in their list.
|
|
|
+ // Set cursor position and a few other things so that SetScrollHere() and Columns() can work when seeking cursor.
|
|
|
+ // FIXME: It is problematic that we have to do that here, because custom/equivalent end-user code would stumble on the same issue. Consider moving within SetCursorXXX functions?
|
|
|
ImGui::SetCursorPosY(pos_y);
|
|
|
ImGuiWindow* window = ImGui::GetCurrentWindow();
|
|
|
- window->DC.CursorPosPrevLine.y = window->DC.CursorPos.y - line_height;
|
|
|
- window->DC.PrevLineHeight = (line_height - GImGui->Style.ItemSpacing.y);
|
|
|
+ window->DC.CursorPosPrevLine.y = window->DC.CursorPos.y - line_height; // Setting those fields so that SetScrollHere() can properly function after the end of our clipper usage.
|
|
|
+ window->DC.PrevLineHeight = (line_height - GImGui->Style.ItemSpacing.y); // If we end up needing more accurate data (to e.g. use SameLine) we may as well make the clipper have a fourth step to let user process and display the last item in their list.
|
|
|
+ if (window->DC.ColumnsCount > 1)
|
|
|
+ window->DC.ColumnsCellMinY = window->DC.CursorPos.y; // Setting this so that cell Y position are set properly
|
|
|
}
|
|
|
|
|
|
// Use case A: Begin() called from constructor with items_height<0, then called again from Sync() in StepNo 1
|