|
|
@ -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
|
|
|
|