fix Window::scroll_to_keep_cursor_visible_ifn

This commit is contained in:
Maxime Coste 2012-10-11 14:23:20 +02:00
parent 4210a17753
commit 4f1ab5b749

View File

@ -72,7 +72,7 @@ void Window::set_dimensions(const DisplayCoord& dimensions)
void Window::scroll_to_keep_cursor_visible_ifn() void Window::scroll_to_keep_cursor_visible_ifn()
{ {
BufferIterator cursor = selections().back().last(); const BufferIterator cursor = selections().back().last();
// scroll lines if needed // scroll lines if needed
if (cursor.line() < m_position.line) if (cursor.line() < m_position.line)
@ -107,10 +107,11 @@ void Window::scroll_to_keep_cursor_visible_ifn()
else else
column += atom.content.content().char_length(); column += atom.content.content().char_length();
CharCount cursor_col = utf8::distance(line_begin, cursor);
// we could early out on this, but having scrolling left // we could early out on this, but having scrolling left
// faster than not scrolling at all is not really useful. // faster than not scrolling at all is not really useful.
if (column < m_position.column) if (cursor_col < m_position.column)
m_position.column = column; m_position.column = cursor_col;
else if (column >= m_position.column + m_dimensions.column) else if (column >= m_position.column + m_dimensions.column)
m_position.column = column - (m_dimensions.column - 1); m_position.column = column - (m_dimensions.column - 1);