BeginChild() fixed missing rounding for child sizes which leaked into layout
diff --git a/imgui.cpp b/imgui.cpp
index e00b195..728593d 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -3188,7 +3188,7 @@
     ImGuiWindowFlags flags = ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_ChildWindow;
 
     const ImVec2 content_avail = ImGui::GetContentRegionAvail();
-    ImVec2 size = size_arg;
+    ImVec2 size = ImRound(size_arg);
     if (size.x <= 0.0f)
     {
         if (size.x == 0.0f)
diff --git a/imgui_internal.h b/imgui_internal.h
index 274b0bc..170876c 100644
--- a/imgui_internal.h
+++ b/imgui_internal.h
@@ -129,6 +129,7 @@
 static inline float  ImLengthSqr(const ImVec2& lhs)                             { return lhs.x*lhs.x + lhs.y*lhs.y; }
 static inline float  ImLengthSqr(const ImVec4& lhs)                             { return lhs.x*lhs.x + lhs.y*lhs.y + lhs.z*lhs.z + lhs.w*lhs.w; }
 static inline float  ImInvLength(const ImVec2& lhs, float fail_value)           { float d = lhs.x*lhs.x + lhs.y*lhs.y; if (d > 0.0f) return 1.0f / sqrtf(d); return fail_value; }
+static inline ImVec2 ImRound(ImVec2 v)                                          { return ImVec2((float)(int)v.x, (float)(int)v.y); }
 
 //-----------------------------------------------------------------------------
 // Types