message: Begin: Factored out a bit of code to CalcSizeContents()
diff: @@ -4151,6 +4151,14 @@ static ImVec2 CalcSizeFullWithConstraint(ImGuiWindow* window, ImVec2 new_size)
  return new_size;
  }
  +static ImVec2 CalcSizeContents(ImGuiWindow* window)
  +{
  + ImVec2 sz;
  + sz.x = (float)(int)((window->SizeContentsExplicit.x != 0.0f) ? window->SizeContentsExplicit.x : (window->DC.CursorMaxPos.x - window->Pos.x + window->Scroll.x));
  + sz.y = (float)(int)((window->SizeContentsExplicit.y != 0.0f) ? window->SizeContentsExplicit.y : (window->DC.CursorMaxPos.y - window->Pos.y + window->Scroll.y));
  + return sz + window->WindowPadding;
  +}
  +
  static ImVec2 CalcSizeAutoFit(ImGuiWindow* window)
  {
  ImGuiContext& g = *GImGui;
  @@ -4420,9 +4428,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
  // SIZE
  // Update contents size from last frame for auto-fitting (unless explicitly specified)
  - window->SizeContents.x = (float)(int)((window->SizeContentsExplicit.x != 0.0f) ? window->SizeContentsExplicit.x : (window->DC.CursorMaxPos.x - window->Pos.x + window->Scroll.x));
  - window->SizeContents.y = (float)(int)((window->SizeContentsExplicit.y != 0.0f) ? window->SizeContentsExplicit.y : (window->DC.CursorMaxPos.y - window->Pos.y + window->Scroll.y));
  - window->SizeContents += window->WindowPadding;
  + window->SizeContents = CalcSizeContents(window);
  // Hide popup/tooltip window when re-opening while we measure size (because we recycle the windows)
  if (window->HiddenFrames > 0)
  