- if (old_cursor.row()->previous()) {
- refresh_row = old_cursor.row()->previous();
- refresh_y = old_cursor.y() - old_cursor.row()->baseline() - refresh_row->height();
- tmpcursor = cursor;
- cursor = old_cursor; // that undo can restore the right cursor position
- Paragraph * endpar = old_cursor.par()->next();
- if (endpar && endpar->getDepth()) {
- while (endpar && endpar->getDepth()) {
- endpar = endpar->next();
- }
- }
- setUndo(bview, Undo::DELETE,
- old_cursor.par(),
- endpar);
- cursor = tmpcursor;
-
- // delete old row
- removeRow(old_cursor.row());
- if (ownerParagraph() == old_cursor.par()) {
- ownerParagraph(ownerParagraph()->next());
- }
- // delete old par
- delete old_cursor.par();
-
- /* Breakagain the next par. Needed
- * because of the parindent that
- * can occur or dissappear. The
- * next row can change its height,
- * if there is another layout before */
- if (refresh_row->next()) {
- breakAgain(bview, refresh_row->next());
- updateCounters(bview, refresh_row);
- }
- setHeightOfRow(bview, refresh_row);
- } else {
- refresh_row = old_cursor.row()->next();
- refresh_y = old_cursor.y() - old_cursor.row()->baseline();
+ if (old_cursor.row()->previous()) {
+ refresh_row = old_cursor.row()->previous();
+ refresh_y = old_cursor.y() - old_cursor.row()->baseline() - refresh_row->height();
+ tmpcursor = cursor;
+ cursor = old_cursor; // that undo can restore the right cursor position
+ Paragraph * endpar = old_cursor.par()->next();
+ if (endpar && endpar->getDepth()) {
+ while (endpar && endpar->getDepth()) {
+ endpar = endpar->next();
+ }
+ }
+ setUndo(bview, Undo::DELETE, old_cursor.par(), endpar);
+ cursor = tmpcursor;
+
+ // delete old row
+ removeRow(old_cursor.row());
+ if (ownerParagraph() == old_cursor.par()) {
+ ownerParagraph(ownerParagraph()->next());
+ }
+ // delete old par
+ delete old_cursor.par();