mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 21:21:06 +01:00 
			
		
		
		
	InputText: Internal: ReloadUserBufXXX functions don't override revert value. (#2890) + rename
This commit is contained in:
		| @@ -1069,7 +1069,7 @@ struct IMGUI_API ImGuiInputTextState | ||||
|     int                     CurLenW, CurLenA;       // we need to maintain our buffer length in both UTF-8 and wchar format. UTF-8 length is valid even if TextA is not. | ||||
|     ImVector<ImWchar>       TextW;                  // edit buffer, we need to persist but can't guarantee the persistence of the user-provided buffer. so we copy into own buffer. | ||||
|     ImVector<char>          TextA;                  // temporary UTF8 buffer for callbacks and other operations. this is not updated in every code-path! size=capacity. | ||||
|     ImVector<char>          InitialTextA;           // backup of end-user buffer at the time of focus (in UTF-8, unaltered) | ||||
|     ImVector<char>          InitialTextA;           // value to revert to when pressing Escape = backup of end-user buffer at the time of focus (in UTF-8, unaltered) | ||||
|     bool                    TextAIsValid;           // temporary UTF8 buffer is not initially valid before we make the widget active (until then we pull the data from user argument) | ||||
|     int                     BufCapacityA;           // end-user buffer capacity | ||||
|     float                   ScrollX;                // horizontal scrolling/offset | ||||
|   | ||||
| @@ -4199,11 +4199,14 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ | ||||
|         // Backup state of deactivating item so they'll have a chance to do a write to output buffer on the same frame they report IsItemDeactivatedAfterEdit (#4714) | ||||
|         InputTextDeactivateHook(state->ID); | ||||
|  | ||||
|         // Take a copy of the initial buffer value (both in original UTF-8 format and converted to wchar) | ||||
|         // From the moment we focused we are ignoring the content of 'buf' (unless we are in read-only mode) | ||||
|         // From the moment we focused we are normally ignoring the content of 'buf' (unless we are in read-only mode) | ||||
|         const int buf_len = (int)strlen(buf); | ||||
|         state->InitialTextA.resize(buf_len + 1);    // UTF-8. we use +1 to make sure that .Data is always pointing to at least an empty string. | ||||
|         memcpy(state->InitialTextA.Data, buf, buf_len + 1); | ||||
|         //if (!init_reload_from_user_buf) | ||||
|         { | ||||
|             // Take a copy of the initial buffer value. | ||||
|             state->InitialTextA.resize(buf_len + 1);    // UTF-8. we use +1 to make sure that .Data is always pointing to at least an empty string. | ||||
|             memcpy(state->InitialTextA.Data, buf, buf_len + 1); | ||||
|         } | ||||
|  | ||||
|         // Preserve cursor position and undo/redo stack if we come back to same widget | ||||
|         // FIXME: Since we reworked this on 2022/06, may want to differentiate recycle_cursor vs recycle_undostate? | ||||
|   | ||||
		Reference in New Issue
	
	Block a user