InputText: Fixed selection rectangle appearing one frame late when selecting all.

This commit is contained in:
ocornut 2021-10-08 13:00:47 +02:00
parent dde31030e9
commit ec6ca06898
2 changed files with 2 additions and 1 deletions

View File

@ -54,6 +54,7 @@ Other Changes:
- InputTextMultiline: Fixed label size not being included into window contents rect unless - InputTextMultiline: Fixed label size not being included into window contents rect unless
the whole widget is clipped. the whole widget is clipped.
- InputText: Allow activating/cancelling/validating input with gamepad nav events. (#2321, #4552) - InputText: Allow activating/cancelling/validating input with gamepad nav events. (#2321, #4552)
- InputText: Fixed selection rectangle appearing one frame late when selecting all.
- TextUnformatted: Accept null ranges including (NULL,NULL) without asserting, in order to conform - TextUnformatted: Accept null ranges including (NULL,NULL) without asserting, in order to conform
to common idioms (e.g. passing .data(), .data() + .size() from a null string). (#3615) to common idioms (e.g. passing .data(), .data() + .size() from a null string). (#3615)
- Disabled: Added assert guard for mismatching BeginDisabled()/EndDisabled() blocks. (#211) - Disabled: Added assert guard for mismatching BeginDisabled()/EndDisabled() blocks. (#211)

View File

@ -4118,7 +4118,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_
// Lock the decision of whether we are going to take the path displaying the cursor or selection // Lock the decision of whether we are going to take the path displaying the cursor or selection
const bool render_cursor = (g.ActiveId == id) || (state && user_scroll_active); const bool render_cursor = (g.ActiveId == id) || (state && user_scroll_active);
bool render_selection = state && state->HasSelection() && (RENDER_SELECTION_WHEN_INACTIVE || render_cursor); bool render_selection = state && (state->HasSelection() || select_all) && (RENDER_SELECTION_WHEN_INACTIVE || render_cursor);
bool value_changed = false; bool value_changed = false;
bool enter_pressed = false; bool enter_pressed = false;