mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 04:31:06 +01:00 
			
		
		
		
	Added a flag for text input to disable undo / redo
This commit is contained in:
		| @@ -8405,6 +8405,7 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2 | ||||
|     const bool is_multiline = (flags & ImGuiInputTextFlags_Multiline) != 0; | ||||
|     const bool is_editable = (flags & ImGuiInputTextFlags_ReadOnly) == 0; | ||||
|     const bool is_password = (flags & ImGuiInputTextFlags_Password) != 0; | ||||
|     const bool disable_undo = (flags & ImGuiInputTextFlags_DisableUndo) != 0; | ||||
|  | ||||
|     if (is_multiline) // Open group before calling GetID() because groups tracks id created during their spawn | ||||
|         BeginGroup(); | ||||
| @@ -8631,10 +8632,10 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2 | ||||
|             if (InputTextFilterCharacter(&c, flags, callback, user_data)) | ||||
|                 edit_state.OnKeyPressed((int)c); | ||||
|         } | ||||
|         else if (IsKeyPressedMap(ImGuiKey_Escape))                                      { clear_active_id = cancel_edit = true; } | ||||
|         else if (is_shortcut_key_only && IsKeyPressedMap(ImGuiKey_Z) && is_editable)    { edit_state.OnKeyPressed(STB_TEXTEDIT_K_UNDO); edit_state.ClearSelection(); } | ||||
|         else if (is_shortcut_key_only && IsKeyPressedMap(ImGuiKey_Y) && is_editable)    { edit_state.OnKeyPressed(STB_TEXTEDIT_K_REDO); edit_state.ClearSelection(); } | ||||
|         else if (is_shortcut_key_only && IsKeyPressedMap(ImGuiKey_A))                   { edit_state.SelectAll(); edit_state.CursorFollow = true; } | ||||
|         else if (IsKeyPressedMap(ImGuiKey_Escape))                                                       { clear_active_id = cancel_edit = true; } | ||||
|         else if (is_shortcut_key_only && IsKeyPressedMap(ImGuiKey_Z) && is_editable && !disable_undo)    { edit_state.OnKeyPressed(STB_TEXTEDIT_K_UNDO); edit_state.ClearSelection(); } | ||||
|         else if (is_shortcut_key_only && IsKeyPressedMap(ImGuiKey_Y) && is_editable && !disable_undo)    { edit_state.OnKeyPressed(STB_TEXTEDIT_K_REDO); edit_state.ClearSelection(); } | ||||
|         else if (is_shortcut_key_only && IsKeyPressedMap(ImGuiKey_A))                                    { edit_state.SelectAll(); edit_state.CursorFollow = true; } | ||||
|         else if (is_shortcut_key_only && !is_password && ((IsKeyPressedMap(ImGuiKey_X) && is_editable) || IsKeyPressedMap(ImGuiKey_C)) && (!is_multiline || edit_state.HasSelection())) | ||||
|         { | ||||
|             // Cut, Copy | ||||
|   | ||||
							
								
								
									
										1
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -566,6 +566,7 @@ enum ImGuiInputTextFlags_ | ||||
|     ImGuiInputTextFlags_AlwaysInsertMode    = 1 << 13,  // Insert mode | ||||
|     ImGuiInputTextFlags_ReadOnly            = 1 << 14,  // Read-only mode | ||||
|     ImGuiInputTextFlags_Password            = 1 << 15,  // Password mode, display all characters as '*' | ||||
|     ImGuiInputTextFlags_DisableUndo         = 1 << 16,  // Disable undo / redo | ||||
|     // [Internal] | ||||
|     ImGuiInputTextFlags_Multiline           = 1 << 20   // For internal use by InputTextMultiline() | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user