InputText: triple-click avoid scroll + include end of line character. (#2244)
diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp
index 71fca73..784e1fc 100644
--- a/imgui_widgets.cpp
+++ b/imgui_widgets.cpp
@@ -4205,8 +4205,16 @@
else
{
// Triple-click: Select line
+ const bool is_eol = ImStb::STB_TEXTEDIT_GETCHAR(state, state->Stb.cursor) == '\n';
state->OnKeyPressed(STB_TEXTEDIT_K_LINESTART);
state->OnKeyPressed(STB_TEXTEDIT_K_LINEEND | STB_TEXTEDIT_K_SHIFT);
+ state->OnKeyPressed(STB_TEXTEDIT_K_RIGHT | STB_TEXTEDIT_K_SHIFT);
+ if (!is_eol && is_multiline)
+ {
+ ImSwap(state->Stb.select_start, state->Stb.select_end);
+ state->Stb.cursor = state->Stb.select_end;
+ }
+ state->CursorFollow = false;
}
state->CursorAnimReset();
}