]> git.lyx.org Git - lyx.git/commitdiff
#7661 check buffer of cursors before using compare operator to avoid a crash
authorStephan Witt <switt@lyx.org>
Sat, 2 Jul 2011 10:41:36 +0000 (10:41 +0000)
committerStephan Witt <switt@lyx.org>
Sat, 2 Jul 2011 10:41:36 +0000 (10:41 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39227 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/GuiSpellchecker.cpp

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