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)
|
m_editor.move_selections(move, SelectMode::Replace);
|
||||||
{
|
|
||||||
BufferCoord pos = sel.last().coord();
|
|
||||||
BufferIterator it = m_editor.m_buffer->iterator_at(pos + offset);
|
|
||||||
sel = Selection(it, it);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IncrementalInserter::move_cursors(LineCount move)
|
||||||
|
{
|
||||||
|
m_editor.move_selections(move, SelectMode::Replace);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,7 +121,8 @@ public:
|
||||||
void insert(String content);
|
void insert(String content);
|
||||||
void insert(const memoryview<String>& strings);
|
void insert(const memoryview<String>& strings);
|
||||||
void erase();
|
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(); }
|
Buffer& buffer() const { return m_editor.buffer(); }
|
||||||
Editor& editor() const { return m_editor; }
|
Editor& editor() const { return m_editor; }
|
||||||
|
|
|
@ -502,13 +502,13 @@ public:
|
||||||
else if (key == Key::Backspace)
|
else if (key == Key::Backspace)
|
||||||
m_inserter.erase();
|
m_inserter.erase();
|
||||||
else if (key == Key::Left)
|
else if (key == Key::Left)
|
||||||
m_inserter.move_cursors({0, -1});
|
m_inserter.move_cursors(-1_char);
|
||||||
else if (key == Key::Right)
|
else if (key == Key::Right)
|
||||||
m_inserter.move_cursors({0, 1});
|
m_inserter.move_cursors(1_char);
|
||||||
else if (key == Key::Up)
|
else if (key == Key::Up)
|
||||||
m_inserter.move_cursors({-1, 0});
|
m_inserter.move_cursors(-1_line);
|
||||||
else if (key == Key::Down)
|
else if (key == Key::Down)
|
||||||
m_inserter.move_cursors({ 1, 0});
|
m_inserter.move_cursors(1_line);
|
||||||
else if (key.modifiers == Key::Modifiers::None)
|
else if (key.modifiers == Key::Modifiers::None)
|
||||||
{
|
{
|
||||||
m_inserter.insert(codepoint_to_str(key.key));
|
m_inserter.insert(codepoint_to_str(key.key));
|
||||||
|
|
Loading…
Reference in New Issue
Block a user