]> git.lyx.org Git - lyx.git/blobdiff - src/CutAndPaste.C
Fix deleting of paragraphs after undo (fix #236).
[lyx.git] / src / CutAndPaste.C
index 34dbf7ed11d38377d672d47928aa8fc543963c1a..df12c4de8d81a241a7044b0a11df46c232bb1ba8 100644 (file)
@@ -92,8 +92,10 @@ bool CutAndPaste::cutSelection(Paragraph * startpar, Paragraph ** endpar,
        
        if (!(*endpar) || startpar == (*endpar)) {
                // only within one paragraph
-               if (realcut)
+               if (realcut) {
                        buf = new Paragraph;
+                       buf->layout(startpar->layout());
+               }
                pos_type i = start;
                if (end > startpar->size())
                        end = startpar->size();
@@ -131,9 +133,12 @@ bool CutAndPaste::cutSelection(Paragraph * startpar, Paragraph ** endpar,
                (*endpar)->previous(startpar);
                
                // the cut selection should begin with standard layout
-               if (realcut)
-                       buf->clear(); 
-               
+               if (realcut) {
+                       buf->params().clear();
+                       buf->bibkey = 0;
+                       buf->layout(textclasslist[current_view->buffer()->params.textclass].defaultLayoutName());
+               }
+
                // paste the paragraphs again, if possible
                if (doclear)
                        startpar->next()->stripLeadingSpaces(textclass);
@@ -154,7 +159,7 @@ bool CutAndPaste::cutSelection(Paragraph * startpar, Paragraph ** endpar,
 
 
 bool CutAndPaste::copySelection(Paragraph * startpar, Paragraph * endpar,
-                               int start, int end, char tc)
+                                int start, int end, char tc)
 {
        if (!startpar || (start > startpar->size()))
                return false;
@@ -166,6 +171,7 @@ bool CutAndPaste::copySelection(Paragraph * startpar, Paragraph * endpar,
        if (!endpar || startpar == endpar) {
                // only within one paragraph
                buf = new Paragraph;
+               buf->layout(startpar->layout());
                pos_type i = start;
                if (end > startpar->size())
                        end = startpar->size();