]> git.lyx.org Git - lyx.git/blobdiff - src/LyXFunc.cpp
Fix http://bugzilla.lyx.org/show_bug.cgi?id=5021
[lyx.git] / src / LyXFunc.cpp
index baea6d962c8560b5499c6c0b90e88eee3c25a2a8..f69f5f88826ff0803202e9d6c55137e3a02f8992 100644 (file)
@@ -461,15 +461,17 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                enable = !buf->lyxvc().inUse();
                break;
        case LFUN_VC_CHECK_IN:
-               enable = buf->lyxvc().inUse() && !buf->isReadonly();
+               enable = buf->lyxvc().checkInEnabled();
                break;
        case LFUN_VC_CHECK_OUT:
-               enable = buf->lyxvc().inUse() && buf->isReadonly();
+               enable = buf->lyxvc().checkOutEnabled();
                break;
        case LFUN_VC_REVERT:
-       case LFUN_VC_UNDO_LAST:
                enable = buf->lyxvc().inUse();
                break;
+       case LFUN_VC_UNDO_LAST:
+               enable = buf->lyxvc().undoLastEnabled();
+               break;
        case LFUN_BUFFER_RELOAD:
                enable = !buf->isUnnamed() && buf->fileName().exists()
                        && (!buf->isClean() || buf->isExternallyModified(Buffer::timestamp_method));
@@ -1059,8 +1061,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        LASSERT(lyx_view_ && lyx_view_->buffer(), /**/);
                        if (!ensureBufferClean(view()))
                                break;
-                       if (lyx_view_->buffer()->lyxvc().inUse()
-                                       && lyx_view_->buffer()->isReadonly()) {
+                       if (lyx_view_->buffer()->lyxvc().inUse()) {
                                lyx_view_->buffer()->lyxvc().checkOut();
                                reloadBuffer();
                        }