diff --git a/src/gui/BufferPane.cc b/src/gui/BufferPane.cc index 9747b89..91d60c7 100644 --- a/src/gui/BufferPane.cc +++ b/src/gui/BufferPane.cc @@ -223,8 +223,20 @@ int BufferPane::draw_buffer_line(int screen_row, const Buffer::Iterator & start_ { if (i == *m_iterator) { - /* TODO: highlight multi-column characters */ - draw_cursor(x, y); + bool wrap = (code_point == '\t'); + int row = draw_row; + int col = screen_column; + int w = character_width; + while (w--) + { + draw_cursor(col_x(col), row_y(row)); + col++; + if (wrap && (col >= m_columns)) + { + row++; + col = 0; + } + } } if ((code_point == '\n') || (code_point == Buffer::Iterator::INVALID_CODE_POINT)) {