diff options
author | nyamatongwe <unknown> | 2000-04-23 23:02:52 +0000 |
---|---|---|
committer | nyamatongwe <unknown> | 2000-04-23 23:02:52 +0000 |
commit | 74cf93aa3185db02bccecacaec088c2404a47692 (patch) | |
tree | 1333ea2f269ba51377731942af211d3c2211dd9e /src/ContractionState.cxx | |
parent | 1a0760897c81afebc3e9d2ead502d09eff9479ee (diff) | |
download | scintilla-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.cxx | 9 |
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); } |