]> git.lyx.org Git - features.git/blobdiff - src/text2.C
clear()->erase() ; lots of using directives for cxx
[features.git] / src / text2.C
index e15b93454aef4669d71eac0fca710de8ba37881d..16ac40d0a53f0100b8de8bcfbe9bcfd09c278c98 100644 (file)
@@ -40,7 +40,6 @@
 #include "font.h"
 #include "debug.h"
 
-#define FIX_DOUBLE_SPACE 1
 //#define USE_OLD_CUT_AND_PASTE 1
 
 using std::copy;
@@ -52,10 +51,7 @@ LyXText::LyXText(BufferView * bv, int pw, Buffer * p)
        owner_ = bv;
        firstrow = 0;
        lastrow = 0;
-       currentrow = 0;
-       currentrow_y = 0;
        paperwidth = pw;
-       //bparams = &p->params;
        buffer = p;
        number_of_rows = 0;
        refresh_y = 0;
@@ -88,6 +84,22 @@ LyXText::LyXText(BufferView * bv, int pw, Buffer * p)
 
        // Default layouttype for copy environment type
        copylayouttype = 0;
+
+#if 0
+       // Dump all rowinformation:
+       Row * tmprow = firstrow;
+       lyxerr << "Baseline Paragraph Pos Height Ascent Fill\n";
+       while (tmprow) {
+               lyxerr << tmprow->baseline << '\t'
+                      << tmprow->par << '\t'
+                      << tmprow->pos << '\t'
+                      << tmprow->height << '\t'
+                      << tmprow->ascent_of_text << '\t'
+                      << tmprow->fill << '\n';
+               tmprow = tmprow->next;
+       }
+       lyxerr.flush();
+#endif
 }
 
 
@@ -283,11 +295,6 @@ void LyXText::RemoveRow(Row * row) const
           row of this row */
        long unused_y;
        GetRow(row->par, row->pos, unused_y);
-       currentrow = currentrow->previous;
-       if (currentrow)
-               currentrow_y -= currentrow->height;
-       else
-               currentrow_y = 0;
    
        if (row->next)
                row->next->previous = row->previous;
@@ -467,12 +474,78 @@ void LyXText::MakeFontEntriesLayoutSpecific(LyXParagraph * par)
        }
 }
 
+LyXParagraph * LyXText::SetLayout(LyXCursor & cur, LyXCursor & sstart_cur,
+                                 LyXCursor & send_cur,
+                                 LyXTextClass::size_type layout)
+{
+       LyXParagraph * endpar = send_cur.par->LastPhysicalPar()->Next();
+       LyXParagraph * undoendpar = endpar;
+
+       if (endpar && endpar->GetDepth()) {
+               while (endpar && endpar->GetDepth()) {
+                       endpar = endpar->LastPhysicalPar()->Next();
+                       undoendpar = endpar;
+               }
+       } else if (endpar) {
+               endpar = endpar->Next(); // because of parindents etc.
+       }
+   
+       SetUndo(Undo::EDIT,
+               sstart_cur.par->ParFromPos(sstart_cur.pos)->previous, 
+               undoendpar);
+
+       /* ok we have a selection. This is always between sstart_cur
+        * and sel_end cursor */ 
+       cur = sstart_cur;
+   
+       LyXLayout const & lyxlayout =
+               textclasslist.Style(buffer->params.textclass, layout);
+   
+       while (cur.par != send_cur.par) {
+               if (cur.par->footnoteflag == sstart_cur.par->footnoteflag) {
+                       cur.par->SetLayout(layout);
+                       MakeFontEntriesLayoutSpecific(cur.par);
+                       LyXParagraph* fppar = cur.par->FirstPhysicalPar();
+                       fppar->added_space_top = lyxlayout.fill_top ?
+                               VSpace(VSpace::VFILL) : VSpace(VSpace::NONE);
+                       fppar->added_space_bottom = lyxlayout.fill_bottom ? 
+                               VSpace(VSpace::VFILL) : VSpace(VSpace::NONE); 
+                       if (lyxlayout.margintype == MARGIN_MANUAL)
+                               cur.par->SetLabelWidthString(lyxlayout.labelstring());
+                       if (lyxlayout.labeltype != LABEL_BIBLIO
+                           && fppar->bibkey) {
+                               delete fppar->bibkey;
+                               fppar->bibkey = 0;
+                       }
+               }
+               cur.par = cur.par->Next();
+       }
+       if (cur.par->footnoteflag == sstart_cur.par->footnoteflag) {
+               cur.par->SetLayout(layout);
+               MakeFontEntriesLayoutSpecific(cur.par);
+               LyXParagraph* fppar = cur.par->FirstPhysicalPar();
+               fppar->added_space_top = lyxlayout.fill_top ?
+                       VSpace(VSpace::VFILL) : VSpace(VSpace::NONE);
+               fppar->added_space_bottom = lyxlayout.fill_bottom ? 
+                       VSpace(VSpace::VFILL) : VSpace(VSpace::NONE); 
+               if (lyxlayout.margintype == MARGIN_MANUAL)
+                       cur.par->SetLabelWidthString(lyxlayout.labelstring());
+               if (lyxlayout.labeltype != LABEL_BIBLIO
+                   && fppar->bibkey) {
+                       delete fppar->bibkey;
+                       fppar->bibkey = 0;
+               }
+       }
+       return endpar;
+}
 
 // set layout over selection and make a total rebreak of those paragraphs
 void LyXText::SetLayout(LyXTextClass::size_type layout)
 {
-       LyXCursor tmpcursor;
+       LyXCursor
+               tmpcursor = cursor;  /* store the current cursor  */
 
+#ifdef USE_OLD_SET_LAYOUT
        // if there is no selection just set the layout
        // of the current paragraph  */
        if (!selection) {
@@ -497,8 +570,6 @@ void LyXText::SetLayout(LyXTextClass::size_type layout)
                sel_start_cursor.par->ParFromPos(sel_start_cursor.pos)->previous, 
                undoendpar);
 
-       tmpcursor = cursor;                    /* store the current cursor  */
-
        /* ok we have a selection. This is always between sel_start_cursor
         * and sel_end cursor */ 
        cursor = sel_start_cursor;
@@ -543,7 +614,16 @@ void LyXText::SetLayout(LyXTextClass::size_type layout)
                        fppar->bibkey = 0;
                }
        }
-   
+#else
+       // if there is no selection just set the layout
+       // of the current paragraph  */
+       if (!selection) {
+               sel_start_cursor = cursor;  // dummy selection
+               sel_end_cursor = cursor;
+       }
+       LyXParagraph *
+       endpar = SetLayout(cursor, sel_start_cursor, sel_end_cursor, layout);
+#endif
        RedoParagraphs(sel_start_cursor, endpar);
    
        // we have to reset the selection, because the
@@ -911,14 +991,14 @@ void LyXText::RedoParagraphs(LyXCursor const & cur,
 }
 
 
-int LyXText::FullRebreak()
+bool LyXText::FullRebreak()
 {
        if (need_break_row) {
                BreakAgain(need_break_row);
                need_break_row = 0;
-               return 1;
+               return true;
        }
-       return 0;
+       return false;
 }
 
 
@@ -1042,38 +1122,21 @@ void  LyXText::CursorBottom() const
    
 /* returns a pointer to the row near the specified y-coordinate
 * (relative to the whole text). y is set to the real beginning
-* of this row */ 
+* of this row */
 Row * LyXText::GetRowNearY(long & y) const
 {
-       Row * tmprow;
-       long tmpy;
-   
-       if (currentrow) {
-               tmprow = currentrow;
-               tmpy = currentrow_y;
-       } else {
-               tmprow = firstrow;
-               tmpy = 0;
-       }
-
-       if (tmpy <= y)
-               while (tmprow->next && tmpy + tmprow->height <= y) {
-                       tmpy += tmprow->height;
-                       tmprow = tmprow->next;
-               }
-       else
-               while (tmprow->previous && tmpy > y) {
-                       tmprow = tmprow->previous;
-                       tmpy -= tmprow->height;
-               }
+       Row * tmprow = firstrow;
+       long tmpy = 0;
 
-       currentrow = tmprow;
-       currentrow_y = tmpy;
+       while (tmprow->next && tmpy + tmprow->height <= y) {
+               tmpy += tmprow->height;
+               tmprow = tmprow->next;
+       }
 
        y = tmpy;   // return the real y
        return tmprow;
 }
-   
+
 
 void LyXText::ToggleFree(LyXFont const & font, bool toggleall)
 {
@@ -1087,8 +1150,11 @@ void LyXText::ToggleFree(LyXFont const & font, bool toggleall)
        }
 
        // Try implicit word selection
+       // If there is a change in the language the implicit word selection 
+       // is disabled.
        LyXCursor resetCursor = cursor;
-       int implicitSelection = SelectWordWhenUnderCursor();
+       bool implicitSelection = (font.language() == ignore_language)
+               ? SelectWordWhenUnderCursor() : false;
 
        // Set font
        SetFont(font, toggleall);
@@ -1509,7 +1575,7 @@ void LyXText::SetCounter(LyXParagraph * par) const
        }
    
        if (!par->labelstring.empty()) {
-               par->labelstring.clear();
+               par->labelstring.erase();
        }
    
        if (layout.margintype == MARGIN_MANUAL) {
@@ -1532,12 +1598,12 @@ void LyXText::SetCounter(LyXParagraph * par) const
                                if (!layout.labelstring().empty())
                                        par->labelstring = layout.labelstring();
                                else
-                                       par->labelstring.clear();
+                                       par->labelstring.erase();
                         } else {
                                if (!layout.labelstring_appendix().empty())
                                        par->labelstring = layout.labelstring_appendix();
                                else
-                                       par->labelstring.clear();
+                                       par->labelstring.erase();
                        }
 
 #ifdef HAVE_SSTREAM
@@ -1995,22 +2061,6 @@ void LyXText::CutSelection(bool doclear)
           (Lgb)
        */
 
-#ifndef FIX_DOUBLE_SPACE
-       bool space_wrapped =
-               sel_end_cursor.par->IsLineSeparator(sel_end_cursor.pos);
-       if (sel_end_cursor.pos > 0
-           && sel_end_cursor.par->IsLineSeparator(sel_end_cursor.pos - 1)) {
-               // please break before a space at the end
-               sel_end_cursor.pos--;
-               space_wrapped = true;
-       }
-       // cut behind a space if there is one
-       while (sel_start_cursor.par->Last() > sel_start_cursor.pos
-              && sel_start_cursor.par->IsLineSeparator(sel_start_cursor.pos)
-              && (sel_start_cursor.par != sel_end_cursor.par
-                  || sel_start_cursor.pos < sel_end_cursor.pos))
-               sel_start_cursor.pos++; 
-#endif
        // there are two cases: cut only within one paragraph or
        // more than one paragraph
    
@@ -2033,55 +2083,19 @@ void LyXText::CutSelection(bool doclear)
                        }
                        simple_cut_buffer->InsertFromMinibuffer(simple_cut_buffer->Last());
                }
-#ifndef FIX_DOUBLE_SPACE
-               // check for double spaces
-               if (sel_start_cursor.pos &&
-                   sel_start_cursor.par->Last() > sel_start_cursor.pos
-                   && sel_start_cursor.par
-                   ->IsLineSeparator(sel_start_cursor.pos - 1)
-                   && sel_start_cursor.par
-                   ->IsLineSeparator(sel_start_cursor.pos)) {
-                       sel_start_cursor.par->Erase(sel_start_cursor.pos);
-               }
-               if (space_wrapped)
-                       simple_cut_buffer->InsertChar(i - sel_start_cursor.pos,
-                                                     ' ');
-#endif
                endpar = sel_end_cursor.par->Next();
        } else {
                // cut more than one paragraph
    
                sel_end_cursor.par
                        ->BreakParagraphConservative(sel_end_cursor.pos);
-#ifndef FIX_DOUBLE_SPACE
-               // insert a space at the end if there was one
-               if (space_wrapped)
-                       sel_end_cursor.par
-                               ->InsertChar(sel_end_cursor.par->Last(), ' ');
-#endif
                sel_end_cursor.par = sel_end_cursor.par->Next();
                sel_end_cursor.pos = 0;
    
                cursor = sel_end_cursor;
 
-#ifndef FIX_DOUBLE_SPACE
-               // please break behind a space, if there is one.
-               // The space should be copied too
-               if (sel_start_cursor.par
-                   ->IsLineSeparator(sel_start_cursor.pos))
-                       sel_start_cursor.pos++;
-#endif   
                sel_start_cursor.par
                        ->BreakParagraphConservative(sel_start_cursor.pos);
-#ifndef FIX_DOUBLE_SPACE
-               if (!sel_start_cursor.pos
-                   || sel_start_cursor.par
-                   ->IsLineSeparator(sel_start_cursor.pos - 1)
-                   || sel_start_cursor.par
-                   ->IsNewline(sel_start_cursor.pos - 1)) {
-                       sel_start_cursor.par->Next()->InsertChar(0, ' ');
-               }
-#endif
                // store the endparagraph for redoing later
                endpar = sel_end_cursor.par->Next(); /* needed because
                                                        the sel_end_
@@ -2120,17 +2134,6 @@ void LyXText::CutSelection(bool doclear)
                    || 
                    !sel_start_cursor.par->Next()->Last())
                        sel_start_cursor.par->ParFromPos(sel_start_cursor.pos)->PasteParagraph();
-
-#ifndef FIX_DOUBLE_SPACE
-               // maybe a forgotten blank
-               if (sel_start_cursor.pos 
-                   && sel_start_cursor.par
-                   ->IsLineSeparator(sel_start_cursor.pos)
-                   && sel_start_cursor.par
-                   ->IsLineSeparator(sel_start_cursor.pos - 1)) {
-                       sel_start_cursor.par->Erase(sel_start_cursor.pos);
-               }
-#endif
        }
 
        // sometimes necessary
@@ -2280,16 +2283,15 @@ void LyXText::CopySelection()
        DeleteSimpleCutBuffer();
 
        // set the textclass
-       simple_cut_buffer_textclass = buffer->params->textclass;
+       simple_cut_buffer_textclass = buffer->params.textclass;
 
-#ifdef FIX_DOUBLE_SPACE
        // copy behind a space if there is one
        while (sel_start_cursor.par->Last() > sel_start_cursor.pos
               && sel_start_cursor.par->IsLineSeparator(sel_start_cursor.pos)
               && (sel_start_cursor.par != sel_end_cursor.par
                   || sel_start_cursor.pos < sel_end_cursor.pos))
                sel_start_cursor.pos++; 
-#endif
+
        // there are two cases: copy only within one paragraph
        // or more than one paragraph
        if (sel_start_cursor.par->ParFromPos(sel_start_cursor.pos) 
@@ -2383,14 +2385,12 @@ void LyXText::CopySelection()
        }
        /* table stuff -- end */
    
-#ifdef FIX_DOUBLE_SPACE
        // copy behind a space if there is one
        while (sel_start_cursor.par->Last() > sel_start_cursor.pos
               && sel_start_cursor.par->IsLineSeparator(sel_start_cursor.pos)
               && (sel_start_cursor.par != sel_end_cursor.par
                   || sel_start_cursor.pos < sel_end_cursor.pos))
                sel_start_cursor.pos++; 
-#endif
 
        CutAndPaste cap;
 
@@ -2450,12 +2450,6 @@ void LyXText::PasteSelection()
        if (!simple_cut_buffer->next) {
                // only within a paragraph
 
-#ifndef FIX_DOUBLE_SPACE
-               // please break behind a space, if there is one
-               while (tmpcursor.par->Last() > tmpcursor.pos
-                      && tmpcursor.par->IsLineSeparator(tmpcursor.pos))
-                       tmpcursor.pos++; 
-#endif
                tmppar = simple_cut_buffer->Clone();
                /* table stuff -- begin */
                bool table_too_small = false;
@@ -2471,7 +2465,6 @@ void LyXText::PasteSelection()
                                        else
                                                table_too_small = true;
                                } else {
-#ifdef FIX_DOUBLE_SPACE
                                        // This is an attempt to fix the
                                        // "never insert a space at the
                                        // beginning of a paragraph" problem.
@@ -2484,12 +2477,6 @@ void LyXText::PasteSelection()
                                                tmpcursor.par->InsertFromMinibuffer(tmpcursor.pos);
                                                tmpcursor.pos++;
                                        }
-#else
-                                       simple_cut_buffer->CutIntoMinibuffer(0);
-                                       simple_cut_buffer->Erase(0);
-                                       tmpcursor.par->InsertFromMinibuffer(tmpcursor.pos);
-                                       tmpcursor.pos++;
-#endif
                                }
                        }
                } else {
@@ -2501,7 +2488,6 @@ void LyXText::PasteSelection()
                        // the beginning of the paragraph the space should
                        // be removed.
                        while (simple_cut_buffer->size()) {
-#ifdef FIX_DOUBLE_SPACE
                                // This is an attempt to fix the
                                // "never insert a space at the
                                // beginning of a paragraph" problem.
@@ -2514,12 +2500,6 @@ void LyXText::PasteSelection()
                                        tmpcursor.par->InsertFromMinibuffer(tmpcursor.pos);
                                        tmpcursor.pos++;
                                }
-#else
-                               simple_cut_buffer->CutIntoMinibuffer(0);
-                               simple_cut_buffer->Erase(0);
-                               tmpcursor.par->InsertFromMinibuffer(tmpcursor.pos);
-                               tmpcursor.pos++;
-#endif
                        }
                }
                delete simple_cut_buffer;
@@ -2550,7 +2530,7 @@ void LyXText::PasteSelection()
      
                // make sure there is no class difference
                cap.SwitchLayoutsBetweenClasses(simple_cut_buffer_textclass,
-                                               buffer->params->textclass,
+                                               buffer->params.textclass,
                                                simple_cut_buffer);
      
                // make the simple_cut_buffer exactly the same layout than
@@ -2562,13 +2542,6 @@ void LyXText::PasteSelection()
                while (lastbuffer->Next())
                        lastbuffer = lastbuffer->Next();
      
-#ifndef FIX_DOUBLE_SPACE
-               // Please break behind a space, if there is one. The space 
-               // should be copied too.
-               if (cursor.par->Last() > cursor.pos
-                   && cursor.par->IsLineSeparator(cursor.pos))
-                       cursor.pos++; 
-#endif
                bool paste_the_end = false;
 
                // open the paragraph for inserting the simple_cut_buffer
@@ -2578,15 +2551,6 @@ void LyXText::PasteSelection()
                        paste_the_end = true;
                }
 
-#ifndef FIX_DOUBLE_SPACE
-               // be careful with double spaces
-               if ((!cursor.par->Last()
-                    || cursor.par->IsLineSeparator(cursor.pos - 1)
-                    || cursor.par->IsNewline(cursor.pos - 1))
-                   && simple_cut_buffer->text.size()
-                   && simple_cut_buffer->IsLineSeparator(0))
-                       simple_cut_buffer->Erase(0);
-#endif
                // set the end for redoing later
                endpar = cursor.par->ParFromPos(cursor.pos)->next->Next();
      
@@ -2612,41 +2576,14 @@ void LyXText::PasteSelection()
                // maybe some pasting
                if (lastbuffer->Next() && paste_the_end) {
                        if (lastbuffer->Next()->HasSameLayout(lastbuffer)) {
-#ifndef FIX_DOUBLE_SPACE
-                               // be careful with double spaces
-                               if ((!lastbuffer->Last()
-                                    || lastbuffer->IsLineSeparator(lastbuffer->Last() - 1)
-                                    || lastbuffer->IsNewline(lastbuffer->Last() - 1))
-                                   && lastbuffer->Next()->Last()
-                                   && lastbuffer->Next()->IsLineSeparator(0))
-                                       lastbuffer->Next()->Erase(0);
-#endif
                                lastbuffer->ParFromPos(lastbuffer->Last())->PasteParagraph();
         
                        } else if (!lastbuffer->Next()->Last()) {
                                lastbuffer->Next()->MakeSameLayout(lastbuffer);
-#ifndef FIX_DOUBLE_SPACE
-                               // be careful witth double spaces
-                               if ((!lastbuffer->Last()
-                                    || lastbuffer->IsLineSeparator(lastbuffer->Last() - 1)
-                                    || lastbuffer->IsNewline(lastbuffer->Last() - 1))
-                                   && lastbuffer->Next()->Last()
-                                   && lastbuffer->Next()->IsLineSeparator(0))
-                                       lastbuffer->Next()->Erase(0);
-#endif
                                lastbuffer->ParFromPos(lastbuffer->Last())->PasteParagraph();
         
                        } else if (!lastbuffer->Last()) {
                                lastbuffer->MakeSameLayout(lastbuffer->next);
-#ifndef FIX_DOUBLE_SPACE
-                               // be careful witth double spaces
-                               if ((!lastbuffer->Last()
-                                    || lastbuffer->IsLineSeparator(lastbuffer->Last() - 1)
-                                    || lastbuffer->IsNewline(lastbuffer->Last() - 1))
-                                   && lastbuffer->Next()->Last()
-                                   && lastbuffer->Next()->IsLineSeparator(0))
-                                       lastbuffer->Next()->Erase(0);
-#endif
                                lastbuffer->ParFromPos(lastbuffer->Last())->PasteParagraph();
         
                        } else
@@ -2856,7 +2793,6 @@ void LyXText::InsertStringA(string const & str)
                                        ++pos;
                                }
                         } else if (str[i] == ' ') {
-#if 1
                                InsetSpecialChar * new_inset =
                                        new InsetSpecialChar(InsetSpecialChar::PROTECTED_SEPARATOR);
                                if (par->InsertInsetAllowed(new_inset)) {
@@ -2866,14 +2802,9 @@ void LyXText::InsertStringA(string const & str)
                                } else {
                                        delete new_inset;
                                }
-#else
-                               par->InsertChar(pos, LyXParagraph::META_PROTECTED_SEPARATOR);
-                               par->SetFont(pos, current_font);
-#endif
                                ++pos;
                        } else if (str[i] == '\t') {
                                for (a = pos; a < (pos / 8 + 1) * 8 ; ++a) {
-#if 1
                                InsetSpecialChar * new_inset =
                                        new InsetSpecialChar(InsetSpecialChar::PROTECTED_SEPARATOR);
                                if (par->InsertInsetAllowed(new_inset)) {
@@ -2883,10 +2814,6 @@ void LyXText::InsertStringA(string const & str)
                                } else {
                                        delete new_inset;
                                }
-#else
-                                       par->InsertChar(a, LyXParagraph::META_PROTECTED_SEPARATOR);
-                                       par->SetFont(a, current_font);
-#endif
                                }
                                pos = a;
                        } else if (str[i] != 13 && 
@@ -2921,7 +2848,6 @@ void LyXText::InsertStringA(string const & str)
                                         break;
                         } else {
                                 if (!par->size()) { // par is empty
-#if 1
                                        InsetSpecialChar * new_inset =
                                                new InsetSpecialChar(InsetSpecialChar::PROTECTED_SEPARATOR);
                                        if (par->InsertInsetAllowed(new_inset)) {
@@ -2931,10 +2857,6 @@ void LyXText::InsertStringA(string const & str)
                                        } else {
                                                delete new_inset;
                                        }
-#else
-                                        par->InsertChar(pos, LyXParagraph::META_PROTECTED_SEPARATOR);
-                                       par->SetFont(pos, current_font);
-#endif
                                         ++pos;
                                 }
                                 par->BreakParagraph(pos, flag);
@@ -3039,8 +2961,8 @@ bool LyXText::GotoNextNote() const
 void LyXText::CheckParagraph(LyXParagraph * par,
                             LyXParagraph::size_type pos)
 {
-  
-       LyXCursor tmpcursor;
+       LyXCursor tmpcursor;                    
+
 
        /* table stuff -- begin*/
    
@@ -3156,6 +3078,7 @@ void LyXText::SetCursor(LyXParagraph * par,
        DeleteEmptyParagraphMechanism(old_cursor);
 }
 
+
 void LyXText::SetCursor(LyXCursor & cur, LyXParagraph * par,
                        LyXParagraph::size_type pos) const
 {
@@ -3588,7 +3511,6 @@ void LyXText::DeleteEmptyParagraphMechanism(LyXCursor const & old_cursor) const
 
        bool deleted = false;
        
-#ifdef FIX_DOUBLE_SPACE
        /* Ok I'll put some comments here about what is missing.
           I have fixed BackSpace (and thus Delete) to not delete
           double-spaces automagically. I have also changed Cut,
@@ -3630,8 +3552,7 @@ void LyXText::DeleteEmptyParagraphMechanism(LyXCursor const & old_cursor) const
                        return;
                }
        }
-#endif
-#if 1
+
        // Do not delete empty paragraphs with keepempty set.
        if ((textclasslist.Style(buffer->params.textclass,
                                 old_cursor.par->GetLayout())).keepempty)
@@ -3734,14 +3655,9 @@ void LyXText::DeleteEmptyParagraphMechanism(LyXCursor const & old_cursor) const
                                }
                                
                                // correct cursor y
-#if 1
+
                                SetCursorIntern(cursor.par, cursor.pos);
-#else
-                               SetCursor(cursor.par, cursor.pos);
-#endif                 
-                               /* if (cursor.y > old_cursor.y)
-                                  cursor.y -= old_cursor.row->height; */ 
-        
+
                                if (sel_cursor.par  == old_cursor.par
                                    && sel_cursor.pos == sel_cursor.pos) {
                                        // correct selection
@@ -3753,16 +3669,11 @@ void LyXText::DeleteEmptyParagraphMechanism(LyXCursor const & old_cursor) const
                        if (old_cursor.par->ClearParagraph()) {
                                RedoParagraphs(old_cursor, old_cursor.par->Next());
                                // correct cursor y
-#if 1
                                SetCursorIntern(cursor.par, cursor.pos);
-#else
-                               SetCursor(cursor.par, cursor.pos);
-#endif
                                sel_cursor = cursor;
                        }
                }
        }
-#endif
 }
 
 
@@ -3852,17 +3763,8 @@ bool LyXText::TextHandleUndo(Undo * undo)
                                if (undo->kind == Undo::EDIT) {
                                        tmppar2->setContentsFromPar(tmppar);
                                        tmppar->clearContents();
-                                       //tmppar2->text = tmppar->text;
-                                       //tmppar->text.clear();
                                        tmppar2 = tmppar2->next;
                                }
-                               if ( currentrow && currentrow->par == tmppar )
-                                       currentrow = currentrow -> previous;
-                               // Commenting out this might remove the error
-                               // reported by Purify, but it might also
-                               // introduce a memory leak. We need to
-                               // check this (Lgb)
-                               //delete tmppar;
                        }
                }