commit 9396a82a5c3a9eee81d60a0b6b0b99fe6171e3c4
Author: Guillaume Munch <[email protected]>
Date:   Tue May 3 22:15:21 2016 +0100

    Disable certain change tracking commands when there are no changes
    
    Fix TODO

diff --git a/src/BufferView.cpp b/src/BufferView.cpp
index e6a69de..883987e 100644
--- a/src/BufferView.cpp
+++ b/src/BufferView.cpp
@@ -1130,11 +1130,7 @@ bool BufferView::getStatus(FuncRequest const & cmd, 
FuncStatus & flag)
        case LFUN_CHANGE_PREVIOUS:
        case LFUN_ALL_CHANGES_ACCEPT:
        case LFUN_ALL_CHANGES_REJECT:
-               // TODO: context-sensitive enabling of LFUNs
-               // In principle, these command should only be enabled if there
-               // is a change in the document. However, without proper
-               // optimizations, this will inevitably result in poor 
performance.
-               flag.setEnabled(true);
+               flag.setEnabled(buffer_.areChangesPresent());
                break;
 
        case LFUN_SCREEN_UP:
diff --git a/src/Changes.cpp b/src/Changes.cpp
index 616daf0..877c3f1 100644
--- a/src/Changes.cpp
+++ b/src/Changes.cpp
@@ -138,6 +138,8 @@ void Changes::set(Change const & change, pos_type const 
start, pos_type const en
                        << ", author: " << change.author 
                        << ", time: " << long(change.changetime)
                        << ") in range (" << start << ", " << end << ")");
+               if (!isChanged())
+                       is_update_required_ = true;
        }
 
        Range const newRange(start, end);

Reply via email to