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);