From: Jean-Marc Lasgouttes Date: Wed, 23 Jan 2013 22:02:05 +0000 (+0100) Subject: Make sure that inset-forall does not skip insets X-Git-Tag: 2.1.0beta1~865 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=f7548ae2cd1172a84b71a0190558e40722537e63;p=lyx.git Make sure that inset-forall does not skip insets This could happen with inset-forall Note:Note char-delete-forward when there where consecutive note insets. --- diff --git a/src/BufferView.cpp b/src/BufferView.cpp index 4aa3360017..43420209cc 100644 --- a/src/BufferView.cpp +++ b/src/BufferView.cpp @@ -1809,7 +1809,7 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr) cur.forwardInset(); cur.beginUndoGroup(); while(cur && iterations < max_iter) { - Inset * ins = cur.nextInset(); + Inset * const ins = cur.nextInset(); if (!ins) break; docstring insname = ins->layoutName(); @@ -1825,7 +1825,9 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr) break; insname = insname.substr(0, i); } - cur.forwardInset(); + // if we did not delete the inset, skip it + if (!cur.nextInset() || cur.nextInset() == ins) + cur.forwardInset(); } cur.endUndoGroup(); cur = savecur;