-void BufferView::trackChanges()
-{
- bool const tracking = buffer_->params().tracking_changes;
-
- if (!tracking) {
- for_each(buffer_->par_iterator_begin(),
- buffer_->par_iterator_end(),
- bind(&Paragraph::trackChanges, _1, Change::UNCHANGED));
- buffer_->params().tracking_changes = true;
-
- // We cannot allow undos beyond the freeze point
- buffer_->undostack().clear();
- } else {
- cursor_.setCursor(doc_iterator_begin(buffer_->inset()));
- if (lyx::find::findNextChange(this)) {
- showDialog("changes");
- return;
- }
-
- for_each(buffer_->par_iterator_begin(),
- buffer_->par_iterator_end(),
- mem_fun_ref(&Paragraph::untrackChanges));
-
- buffer_->params().tracking_changes = false;
- }
-
- buffer_->redostack().clear();
-}