aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ContractionState.cxx
diff options
context:
space:
mode:
authornyamatongwe <unknown>2000-04-23 23:02:52 +0000
committernyamatongwe <unknown>2000-04-23 23:02:52 +0000
commit74cf93aa3185db02bccecacaec088c2404a47692 (patch)
tree1333ea2f269ba51377731942af211d3c2211dd9e /src/ContractionState.cxx
parent1a0760897c81afebc3e9d2ead502d09eff9479ee (diff)
downloadscintilla-mirror-74cf93aa3185db02bccecacaec088c2404a47692.tar.gz
Fixing problems with fold information degrading when lines inserted and
removed. New notifications before inserting and deleting text.
Diffstat (limited to 'src/ContractionState.cxx')
-rw-r--r--src/ContractionState.cxx9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/ContractionState.cxx b/src/ContractionState.cxx
index b01081588..82bf40994 100644
--- a/src/ContractionState.cxx
+++ b/src/ContractionState.cxx
@@ -131,10 +131,11 @@ void ContractionState::DeleteLines(int lineDoc, int lineCount) {
}
int delta = 0;
for (int d=0;d<lineCount;d++)
- if (lines[lineDoc+d].visible)
+ if (lines[lineDoc+d].visible && (lineDoc+d != 0))
delta--;
for (int i = lineDoc; i < linesInDoc-lineCount; i++) {
- lines[i].visible = lines[i + lineCount].visible;
+ if (i != 0) // Line zero is always visible
+ lines[i].visible = lines[i + lineCount].visible;
lines[i].expanded = lines[i + lineCount].expanded;
}
linesInDoc -= lineCount;
@@ -153,6 +154,10 @@ bool ContractionState::GetVisible(int lineDoc) const {
}
bool ContractionState::SetVisible(int lineDocStart, int lineDocEnd, bool visible) {
+ if (lineDocStart == 0)
+ lineDocStart++;
+ if (lineDocStart > lineDocEnd)
+ return false;
if (size == 0) {
Grow(linesInDoc + growSize);
}