Fixed a text rendering/clipping bug introduced in 1.66 (on 2018-10-12, commit ede3a3b9) that affect single ImDrawList::AddText() calls with single strings larger than 10k. Text/TextUnformatted() calls were not affected, but e.g. InputText() was.
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index 3bd9509..0600425 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -37,6 +37,8 @@
Other Changes:
+- Fixed a text rendering/clipping bug introduced in 1.66 (on 2018-10-12, commit ede3a3b9) that affect single ImDrawList::AddText()
+ calls with single strings larger than 10k. Text/TextUnformatted() calls were not affected, but e.g. InputText() was. [@pdoane]
- When the focused window become inactive don't restore focus to a window with the ImGuiWindowFlags_NoInputs flag. (#2213) [@zzzyap]
- Separator: Fixed Separator() outputting an extraneous empty line when captured into clipboard/text/file.
- Demo: Added ShowAboutWindow() call, previously was only accessible from the demo window.
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 2a62935..b71d626 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -902,6 +902,8 @@
if (ImGui::TreeNode("Multi-line Text Input"))
{
+ // Note: we are using a fixed-sized buffer for simplicity here. See ImGuiInputTextFlags_CallbackResize
+ // and the code in misc/cpp/imgui_stdlib.h for how to setup InputText() for dynamically resizing strings.
static bool read_only = false;
static char text[1024*16] =
"/*\n"
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 4f503bf..5346ad5 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -2662,7 +2662,7 @@
while (y_end < clip_rect.w && s_end < text_end)
{
s_end = (const char*)memchr(s_end, '\n', text_end - s_end);
- s = s ? s + 1 : text_end;
+ s_end = s_end ? s_end + 1 : text_end;
y_end += line_height;
}
text_end = s_end;