diff --git a/imgui.cpp b/imgui.cpp index c35c9d032c71..a6eed5b74784 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -7144,7 +7144,7 @@ static bool InputTextEx(const char* label, char* buf, size_t buf_size, const ImV for (const ImWchar* p = text_selected_begin; p < text_selected_end; ) { ImVec2 rect_size = CalcTextSizeW(edit_state.Font, edit_state.FontSize, FLT_MAX, p, text_selected_end, &p, NULL, true); - ImRect rect(render_pos + rect_pos + ImVec2(-edit_state.ScrollX, -font_offy_up), render_pos + rect_pos + ImVec2(rect_size.x - edit_state.ScrollX, +font_offy_dn)); + ImRect rect(render_pos + rect_pos + ImVec2(-edit_state.ScrollX, (p == text_selected_begin) ? -font_offy_up : -g.FontSize), render_pos + rect_pos + ImVec2(rect_size.x - edit_state.ScrollX, (p == text_selected_end) ? +font_offy_dn : 0.0f)); rect.Clip(clip_rect); window->DrawList->AddRectFilled(rect.Min, rect.Max, font_color); rect_pos.x = 0.0f;