#7661 check buffer of cursors before using compare operator to avoid a crash

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39227 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Stephan Witt 2011-07-02 10:41:36 +00:00
parent e44de2f856
commit 7252ebbb34

View File

@ -79,6 +79,8 @@ struct SpellcheckerWidget::Private
return false; return false;
} }
void canCheck() { incheck_ = false; } void canCheck() { incheck_ = false; }
/// check for wrap around of current position
bool isWrapAround(DocIterator cursor) const;
/// ///
Ui::SpellcheckerUi ui; Ui::SpellcheckerUi ui;
/// ///
@ -200,6 +202,11 @@ bool SpellcheckerWidget::Private::continueFromBeginning()
return true; return true;
} }
bool SpellcheckerWidget::Private::isWrapAround(DocIterator cursor) const
{
return wrap_around_ && start_.buffer() == cursor.buffer() && start_ < cursor;
}
void SpellcheckerWidget::Private::forward() void SpellcheckerWidget::Private::forward()
{ {
@ -216,7 +223,7 @@ void SpellcheckerWidget::Private::forward()
//FIXME we must be at the end of a cell //FIXME we must be at the end of a cell
dispatch(FuncRequest(LFUN_CHAR_FORWARD)); dispatch(FuncRequest(LFUN_CHAR_FORWARD));
} }
if (wrap_around_ && start_ < bv->cursor()) { if (isWrapAround(bv->cursor())) {
dv_->hide(); dv_->hide();
} }
} }
@ -397,7 +404,7 @@ void SpellcheckerWidget::Private::check()
return; return;
} }
if (wrap_around_ && start_ < from) { if (isWrapAround(from)) {
dv_->hide(); dv_->hide();
return; return;
} }