IncrementalInsert::move_cursors: use overloaded for LineCount/CharCount editor implementation
This commit is contained in:
parent
cad4d3c01e
commit
557128b641
|
@ -461,14 +461,14 @@ void IncrementalInserter::erase()
|
|||
}
|
||||
}
|
||||
|
||||
void IncrementalInserter::move_cursors(const BufferCoord& offset)
|
||||
void IncrementalInserter::move_cursors(CharCount move)
|
||||
{
|
||||
for (auto& sel : m_editor.m_selections)
|
||||
{
|
||||
BufferCoord pos = sel.last().coord();
|
||||
BufferIterator it = m_editor.m_buffer->iterator_at(pos + offset);
|
||||
sel = Selection(it, it);
|
||||
m_editor.move_selections(move, SelectMode::Replace);
|
||||
}
|
||||
|
||||
void IncrementalInserter::move_cursors(LineCount move)
|
||||
{
|
||||
m_editor.move_selections(move, SelectMode::Replace);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -121,7 +121,8 @@ public:
|
|||
void insert(String content);
|
||||
void insert(const memoryview<String>& strings);
|
||||
void erase();
|
||||
void move_cursors(const BufferCoord& offset);
|
||||
void move_cursors(CharCount move);
|
||||
void move_cursors(LineCount move);
|
||||
|
||||
Buffer& buffer() const { return m_editor.buffer(); }
|
||||
Editor& editor() const { return m_editor; }
|
||||
|
|
|
@ -502,13 +502,13 @@ public:
|
|||
else if (key == Key::Backspace)
|
||||
m_inserter.erase();
|
||||
else if (key == Key::Left)
|
||||
m_inserter.move_cursors({0, -1});
|
||||
m_inserter.move_cursors(-1_char);
|
||||
else if (key == Key::Right)
|
||||
m_inserter.move_cursors({0, 1});
|
||||
m_inserter.move_cursors(1_char);
|
||||
else if (key == Key::Up)
|
||||
m_inserter.move_cursors({-1, 0});
|
||||
m_inserter.move_cursors(-1_line);
|
||||
else if (key == Key::Down)
|
||||
m_inserter.move_cursors({ 1, 0});
|
||||
m_inserter.move_cursors(1_line);
|
||||
else if (key.modifiers == Key::Modifiers::None)
|
||||
{
|
||||
m_inserter.insert(codepoint_to_str(key.key));
|
||||
|
|
Loading…
Reference in New Issue
Block a user