mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	InputText: update mouse drag on mouse move only & key input reposition selection bounds (better fix for #429)
This commit is contained in:
		| @@ -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; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user