]> git.lyx.org Git - lyx.git/blobdiff - src/text2.C
some visual feedback for extra vertical space
[lyx.git] / src / text2.C
index fa5220ac46b665123bb1bbff2e5e669de233ef43..7d4172e5ffa6ec01b3b3288919ac3e4d24653bf4 100644 (file)
@@ -1663,7 +1663,7 @@ void LyXText::pasteEnvironmentType(BufferView * bview)
 }
 
 
-void LyXText::cutSelection(BufferView * bview, bool doclear)
+void LyXText::cutSelection(BufferView * bview, bool doclear, bool realcut)
 {
        // Stuff what we got on the clipboard. Even if there is no selection.
 
@@ -1705,15 +1705,17 @@ void LyXText::cutSelection(BufferView * bview, bool doclear)
                endpar = selection.end.par();
                int pos = selection.end.pos();
                CutAndPaste::cutSelection(selection.start.par(), &endpar,
-                                         selection.start.pos(), pos,
-                                         bview->buffer()->params.textclass, doclear);
+                                         selection.start.pos(), pos,
+                                         bview->buffer()->params.textclass, doclear,
+                                         realcut);
                selection.end.pos(pos);
        } else {
                endpar = selection.end.par();
                int pos = selection.end.pos();
                CutAndPaste::cutSelection(selection.start.par(), &endpar,
-                                         selection.start.pos(), pos,
-                                         bview->buffer()->params.textclass, doclear);
+                                         selection.start.pos(), pos,
+                                         bview->buffer()->params.textclass, doclear,
+                                                                 realcut);
                cursor.par(endpar);
                selection.end.par(endpar);
                selection.end.pos(pos);
@@ -1845,7 +1847,7 @@ void LyXText::replaceSelectionWithString(BufferView * bview,
        }
        
        // Cut the selection
-       cutSelection(bview);
+       cutSelection(bview, true, false);
 
        unFreezeUndo();
 }
@@ -2038,8 +2040,8 @@ bool LyXText::updateInset(BufferView * bview, Inset * inset)
 
 
 void LyXText::setCursor(BufferView * bview, Paragraph * par,
-                       Paragraph::size_type pos, 
-                       bool setfont, bool boundary) const
+                        Paragraph::size_type pos, 
+                        bool setfont, bool boundary) const
 {
        LyXCursor old_cursor = cursor;
        setCursorIntern(bview, par, pos, setfont, boundary);
@@ -2137,14 +2139,31 @@ void LyXText::setCursorIntern(BufferView * bview, Paragraph * par,
                              bool setfont, bool boundary) const
 {
        InsetText * it = static_cast<InsetText *>(par->inInset());
-       if (it && (it != inset_owner)) {
-               it->getLyXText(bview)->setCursorIntern(bview, par, pos, setfont,
-                                                      boundary);
-       } else {
-               setCursor(bview, cursor, par, pos, boundary);
-               if (setfont)
-                       setCurrentFont(bview);
+       if (it) {
+               if (it != inset_owner) {
+                       lyxerr << "InsetText   is " << it << endl;
+                       lyxerr << "inset_owner is " << inset_owner << endl;
+#warning I belive this code is wrong. (Lgb)
+#warning Jürgen, have a look at this. (Lgb)
+#warning Hmmm, I guess you are right but we
+#warning should verify when this is needed
+                       // Jürgen, would you like to have a look?
+                       // I guess we need to move the outer cursor
+                       // and open and lock the inset (bla bla bla)
+                       // stuff I don't know... so can you have a look?
+                       // (Lgb)
+                       // I moved the lyxerr stuff in here so we can see if this
+                       // is actually really needed and where!
+                       // (Jug)
+                       it->getLyXText(bview)->setCursorIntern(bview, par, pos, setfont,
+                                                              boundary);
+                       return;
+               }
        }
+       
+       setCursor(bview, cursor, par, pos, boundary);
+       if (setfont)
+               setCurrentFont(bview);
 }
 
 
@@ -2513,20 +2532,6 @@ LyXText::text_status LyXText::status() const
 
 void LyXText::status(BufferView * bview, LyXText::text_status st) const
 {
-#if 0
-       if ((status_ != NEED_MORE_REFRESH)
-           || (status_ == NEED_MORE_REFRESH)
-           && (st != NEED_VERY_LITTLE_REFRESH)) {
-               status_ = st;
-               if (inset_owner && st != UNCHANGED) {
-                       bview->text->status(bview, NEED_VERY_LITTLE_REFRESH);
-               }
-       }
-#else
-#warning Please tell what the intention is here. (Lgb)
-       // The above does not make any sense, I changed it to what is here,
-       // but it still does not make much sense. (Lgb)
-#warning Sure have a look now! (Jug)
        // well as much as I know && binds more then || so the above and the
        // below are identical (this for your known use of parentesis!)
        // Now some explanation:
@@ -2554,5 +2559,4 @@ void LyXText::status(BufferView * bview, LyXText::text_status st) const
                        }
                }
        }
-#endif
 }