From 720784b81189bf71ced4bf0f6f2a0998f63b5295 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Wed, 23 Jan 2013 23:02:05 +0100 Subject: [PATCH] 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. --- src/BufferView.cpp | 6 ++++-- status.20x | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/BufferView.cpp b/src/BufferView.cpp index 057fe0bb32..d490fe756a 100644 --- a/src/BufferView.cpp +++ b/src/BufferView.cpp @@ -1778,7 +1778,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(); @@ -1794,7 +1794,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; diff --git a/status.20x b/status.20x index abf1cc737f..3cafc49cea 100644 --- a/status.20x +++ b/status.20x @@ -124,6 +124,8 @@ What's new - Do not crop wide characters in Symbols dialog (bug 5707). +- Make sure that inset-forall does not skip insets. + * DOCUMENTATION AND LOCALIZATION -- 2.39.5