MCPcopy Create free account
hub / github.com/KebsCS/KBotExt / stb_textedit_replace

Function stb_textedit_replace

KBotExt/imgui/imgui_widgets.cpp:3818–3832  ·  view source on GitHub ↗

stb_textedit internally allows for a single undo record to do addition and deletion, but somehow, calling the stb_textedit_paste() function creates two separate records, so we perform it manually. (FIXME: Report to nothings/stb?)

Source from the content-addressed store, hash-verified

3816// stb_textedit internally allows for a single undo record to do addition and deletion, but somehow, calling
3817// the stb_textedit_paste() function creates two separate records, so we perform it manually. (FIXME: Report to nothings/stb?)
3818 static void stb_textedit_replace(ImGuiInputTextState* str, STB_TexteditState* state, const STB_TEXTEDIT_CHARTYPE* text, int text_len)
3819 {
3820 stb_text_makeundo_replace(str, state, 0, str->CurLenW, text_len);
3821 ImStb::STB_TEXTEDIT_DELETECHARS(str, 0, str->CurLenW);
3822 state->cursor = state->select_start = state->select_end = 0;
3823 if (text_len <= 0)
3824 return;
3825 if (ImStb::STB_TEXTEDIT_INSERTCHARS(str, 0, text, text_len))
3826 {
3827 state->cursor = state->select_start = state->select_end = text_len;
3828 state->has_preferred_x = 0;
3829 return;
3830 }
3831 IM_ASSERT(0); // Failed to insert character, normally shouldn't happen because of how we currently use stb_textedit_replace()
3832 }
3833} // namespace ImStb
3834
3835void ImGuiInputTextState::OnKeyPressed(int key)

Callers 1

InputTextExMethod · 0.85

Calls 3

STB_TEXTEDIT_DELETECHARSFunction · 0.85
STB_TEXTEDIT_INSERTCHARSFunction · 0.85

Tested by

no test coverage detected