mirror of
https://github.com/ocornut/imgui.git
synced 2026-01-09 23:54:20 +00:00
InputTextMultiline: fixed a crash when using ImGuiInputTextFlags_WordWrap and resizing the parent window while keeping the multi-line field active. (#9007, #3237)
This commit is contained in:
parent
d7fec5e1d3
commit
2a5e9a15e4
2 changed files with 10 additions and 1 deletions
|
|
@ -47,6 +47,10 @@ Other Changes:
|
||||||
result in temporarily incorrect state, which would lead to bugs to side effects
|
result in temporarily incorrect state, which would lead to bugs to side effects
|
||||||
in various locations, e.g. GetContentRegionAvail() calls or using clipper. (#9005)
|
in various locations, e.g. GetContentRegionAvail() calls or using clipper. (#9005)
|
||||||
EndTable() was mistakenly restoring a wrong current table.
|
EndTable() was mistakenly restoring a wrong current table.
|
||||||
|
- InputTextMultiline: fixed a crash when using ImGuiInputTextFlags_WordWrap and
|
||||||
|
resizing the parent window while keeping the multi-line field active (which is
|
||||||
|
most typically achieved when resizing programmatically or via a docking layout
|
||||||
|
reacting to a platform window resize). (#3237, #9007) [@anton-kl, @ocornut]
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -5401,7 +5401,12 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_
|
||||||
line_index->Offsets.resize(0);
|
line_index->Offsets.resize(0);
|
||||||
int line_count = 1;
|
int line_count = 1;
|
||||||
if (is_multiline)
|
if (is_multiline)
|
||||||
line_count = InputTextLineIndexBuild(flags, line_index, buf_display, buf_display_end, wrap_width, (render_cursor && state && state->CursorFollow) ? INT_MAX : line_visible_n1 + 1, buf_display_end ? NULL : &buf_display_end);
|
{
|
||||||
|
// If scrolling is expected to change build full index.
|
||||||
|
// FIXME-OPT: Could append to index when new value of line_visible_n1 becomes bigger, see second call to CalcClipRectVisibleItemsY() below.
|
||||||
|
bool will_scroll_y = state && ((state->CursorFollow && render_cursor) || (state->CursorCenterY && (render_cursor || render_selection)));
|
||||||
|
line_count = InputTextLineIndexBuild(flags, line_index, buf_display, buf_display_end, wrap_width, will_scroll_y ? INT_MAX : line_visible_n1 + 1, buf_display_end ? NULL : &buf_display_end);
|
||||||
|
}
|
||||||
line_index->EndOffset = (int)(buf_display_end - buf_display);
|
line_index->EndOffset = (int)(buf_display_end - buf_display);
|
||||||
line_visible_n1 = ImMin(line_visible_n1, line_count);
|
line_visible_n1 = ImMin(line_visible_n1, line_count);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue