mirror of
https://github.com/ocornut/imgui.git
synced 2024-11-28 17:40:56 +01:00
InputText(): removed a call to strlen() in the active edit path (#200)
This commit is contained in:
parent
2b68a5c0cf
commit
b524c59c70
26
imgui.cpp
26
imgui.cpp
@ -6539,22 +6539,18 @@ static ImVec2 InputTextCalcTextSizeW(const ImWchar* text_begin, const ImWchar* t
|
||||
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 @@ static bool InputTextEx(const char* label, char* buf, size_t buf_size, const ImV
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user