aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Editor.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r--src/Editor.cxx13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index 5b0486be0..a4e2cc732 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -5414,18 +5414,23 @@ void Editor::SetEOLAnnotationVisible(EOLAnnotationVisible visible) {
Sci::Line Editor::ExpandLine(Sci::Line line) {
const Sci::Line lineMaxSubord = pdoc->GetLastChild(line);
line++;
+ Sci::Line lineStart = line;
while (line <= lineMaxSubord) {
- pcs->SetVisible(line, line, true);
const FoldLevel level = pdoc->GetFoldLevel(line);
if (LevelIsHeader(level)) {
+ pcs->SetVisible(lineStart, line, true);
if (pcs->GetExpanded(line)) {
line = ExpandLine(line);
} else {
line = pdoc->GetLastChild(line);
}
+ lineStart = line + 1;
}
line++;
}
+ if (lineStart <= lineMaxSubord) {
+ pcs->SetVisible(lineStart, lineMaxSubord, true);
+ }
return lineMaxSubord;
}
@@ -5588,11 +5593,7 @@ void Editor::FoldAll(FoldAction action) {
}
if (expanding) {
pcs->SetVisible(0, maxLine-1, true);
- for (Sci::Line line = 0; line < maxLine; line++) {
- if (!pcs->GetExpanded(line)) {
- SetFoldExpanded(line, true);
- }
- }
+ pcs->ExpandAll();
} else {
for (Sci::Line line = 0; line < maxLine; line++) {
const FoldLevel level = pdoc->GetFoldLevel(line);