mirror of
https://github.com/Drezil/imgui.git
synced 2024-12-26 09:36:35 +00:00
InputText: update mouse drag on mouse move only & key input reposition selection bounds (better fix for #429)
This commit is contained in:
parent
4bfd5cd95f
commit
6c7f8efe1e
@ -7046,7 +7046,6 @@ void ImGuiTextEditState::OnKeyPressed(int key)
|
||||
{
|
||||
stb_textedit_key(this, &StbState, key);
|
||||
CursorFollow = true;
|
||||
SelectedAllMouseLock = true;
|
||||
CursorAnimReset();
|
||||
}
|
||||
|
||||
@ -7310,7 +7309,7 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2
|
||||
stb_textedit_click(&edit_state, &edit_state.StbState, mouse_x, mouse_y);
|
||||
edit_state.CursorAnimReset();
|
||||
}
|
||||
else if (io.MouseDown[0] && !edit_state.SelectedAllMouseLock)
|
||||
else if (io.MouseDown[0] && !edit_state.SelectedAllMouseLock && (io.MouseDelta.x != 0.0f || io.MouseDelta.y != 0.0f))
|
||||
{
|
||||
stb_textedit_drag(&edit_state, &edit_state.StbState, mouse_x, mouse_y);
|
||||
edit_state.CursorAnimReset();
|
||||
|
@ -437,6 +437,8 @@ static void stb_textedit_click(STB_TEXTEDIT_STRING *str, STB_TexteditState *stat
|
||||
static void stb_textedit_drag(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y)
|
||||
{
|
||||
int p = stb_text_locate_coord(str, x, y);
|
||||
if (state->select_start == state->select_end)
|
||||
state->select_start = state->cursor;
|
||||
state->cursor = state->select_end = p;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user