]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView2.C
Added new FINISED states FINISHED_RIGHT, FINISHED_UP, FINISHED_DOWN.
[lyx.git] / src / BufferView2.C
index 21f99d0e33c0625eca258e7eba5b50b82234d0e1..3aac225fed9347551cb1e7eb8c430e3798658db7 100644 (file)
@@ -346,8 +346,10 @@ void BufferView::selectLastWord()
 {
        if (!available()) return;
    
+       LyXCursor cur = text->selection.cursor;
        hideCursor();
        beforeChange(text);
+       text->selection.cursor = cur;
        text->selectSelectedWord(this);
        toggleSelection(false);
        update(text, BufferView::SELECT|BufferView::FITCUR);
@@ -409,17 +411,19 @@ void BufferView::showLockedInsetCursor(int x, int y, int asc, int desc)
 {
        if (available() && theLockingInset()) {
                LyXCursor cursor = text->cursor;
+               Inset * locking_inset = theLockingInset()->getLockingInset();
+
                if ((cursor.pos() - 1 >= 0) &&
                    (cursor.par()->getChar(cursor.pos() - 1) ==
                     Paragraph::META_INSET) &&
                    (cursor.par()->getInset(cursor.pos() - 1) ==
-                    theLockingInset()->getLockingInset()))
+                    locking_inset))
                        text->setCursor(this, cursor,
                                        cursor.par(), cursor.pos() - 1);
                LyXScreen::Cursor_Shape shape = LyXScreen::BAR_SHAPE;
                LyXText * txt = getLyXText();
-               if (theLockingInset()->getLockingInset()->lyxCode() ==
-                   Inset::TEXT_CODE &&
+               if (locking_inset->isTextInset() &&
+                   locking_inset->lyxCode() != Inset::ERT_CODE &&
                    (txt->real_current_font.language() !=
                     buffer()->params.language
                     || txt->real_current_font.isVisibleRightToLeft()