do not allow cursor movements for non-valid cursors
This commit is contained in:
parent
7e518cd27a
commit
6e5489c88e
@ -124,6 +124,8 @@ PieceTable::Cursor::Cursor(PieceTable * pt) : iterator(pt)
|
||||
|
||||
bool PieceTable::Cursor::go_start_of_line()
|
||||
{
|
||||
if (!iterator.valid())
|
||||
return false;
|
||||
bool rv = false;
|
||||
while (iterator.valid() &&
|
||||
(!iterator.piece->prev->eol()) &&
|
||||
@ -141,6 +143,8 @@ bool PieceTable::Cursor::go_start_of_line()
|
||||
|
||||
bool PieceTable::Cursor::go_end_of_line()
|
||||
{
|
||||
if (!iterator.valid())
|
||||
return false;
|
||||
bool rv = false;
|
||||
while (iterator.valid() &&
|
||||
(!iterator.piece->eol()) &&
|
||||
@ -159,6 +163,8 @@ bool PieceTable::Cursor::go_end_of_line()
|
||||
|
||||
bool PieceTable::Cursor::go_up(int n, uint32_t desired_column)
|
||||
{
|
||||
if (!iterator.valid())
|
||||
return false;
|
||||
Piece * p = prev_line();
|
||||
if (p == nullptr)
|
||||
{
|
||||
@ -174,6 +180,8 @@ bool PieceTable::Cursor::go_up(int n, uint32_t desired_column)
|
||||
|
||||
bool PieceTable::Cursor::go_down(int n, uint32_t desired_column)
|
||||
{
|
||||
if (!iterator.valid())
|
||||
return false;
|
||||
Piece * p = next_line();
|
||||
if (p == nullptr)
|
||||
{
|
||||
@ -189,6 +197,8 @@ bool PieceTable::Cursor::go_down(int n, uint32_t desired_column)
|
||||
|
||||
bool PieceTable::Cursor::go_left(int n)
|
||||
{
|
||||
if (!iterator.valid())
|
||||
return false;
|
||||
if (is_start_of_line())
|
||||
{
|
||||
return false;
|
||||
@ -209,6 +219,8 @@ bool PieceTable::Cursor::go_left(int n)
|
||||
|
||||
bool PieceTable::Cursor::go_right(int n)
|
||||
{
|
||||
if (!iterator.valid())
|
||||
return false;
|
||||
if (is_end_of_line())
|
||||
{
|
||||
return false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user