소스 검색

InputText: fix for InsertChars() to work on read-only buffer. (#8714, #8689, #8242)

Ill defined feature but memory editor use InsertChars etc on a read-only buffer.
`if (init_state)` block of InputTextEx() intentionally does not resize TextA, as unneeded.
Amend b2c73596aeaf63b46b66a615ec02fce1b87f4248
Amend e900571
ocornut 2 달 전
부모
커밋
0dc2885f3e
1개의 변경된 파일1개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      imgui_widgets.cpp

+ 1 - 1
imgui_widgets.cpp

@@ -4289,7 +4289,7 @@ void ImGuiInputTextCallbackData::InsertChars(int pos, const char* new_text, cons
     // Grow internal buffer if needed
     const bool is_resizable = (Flags & ImGuiInputTextFlags_CallbackResize) != 0;
     const int new_text_len = new_text_end ? (int)(new_text_end - new_text) : (int)ImStrlen(new_text);
-    if (new_text_len + BufTextLen + 1 > obj->TextA.Size)
+    if (new_text_len + BufTextLen + 1 > obj->TextA.Size && (Flags & ImGuiInputTextFlags_ReadOnly) == 0)
     {
         if (!is_resizable)
             return;