InputText(): removed a call to strlen() in the active edit path (#200)
diff --git a/imgui.cpp b/imgui.cpp
index 3a94bf3..ab014d1 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -6539,22 +6539,18 @@
const ImWchar* s = text_begin;
while (s < text_end)
{
- const unsigned int c = (unsigned int)(*s++);
-
- if (c < 32)
+ unsigned int c = (unsigned int)(*s++);
+ if (c == '\n')
{
- if (c == '\n')
- {
- text_size.x = ImMax(text_size.x, line_width);
- text_size.y += line_height;
- line_width = 0.0f;
- if (stop_on_new_line)
- break;
- continue;
- }
- if (c == '\r')
- continue;
+ text_size.x = ImMax(text_size.x, line_width);
+ text_size.y += line_height;
+ line_width = 0.0f;
+ if (stop_on_new_line)
+ break;
+ continue;
}
+ if (c == '\r')
+ continue;
const float char_width = font->GetCharAdvance((unsigned short)c) * scale;
line_width += char_width;
@@ -7165,7 +7161,7 @@
}
}
- draw_window->DrawList->AddText(g.Font, g.FontSize, render_pos - render_scroll, draw_window->Color(ImGuiCol_Text), buf, NULL, 0.0f, is_multiline ? NULL : &clip_rect);
+ draw_window->DrawList->AddText(g.Font, g.FontSize, render_pos - render_scroll, draw_window->Color(ImGuiCol_Text), buf, buf+edit_state.CurLenA, 0.0f, is_multiline ? NULL : &clip_rect);
// Draw blinking cursor
ImVec2 cursor_screen_pos = render_pos + cursor_offset - ImVec2(edit_state.ScrollX, 0.0f);