aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Editor.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r--src/Editor.cxx10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index d10a8cee0..b455376ae 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -810,6 +810,10 @@ void Editor::LayoutLine(int line, Surface *surface, ViewStyle &vstyle, LineLayou
ll.chars[numCharsInLine] = chDoc;
ll.styles[numCharsInLine] = static_cast<char>(styleByte & styleMask);
ll.indicators[numCharsInLine] = static_cast<char>(styleByte & ~styleMask);
+ if (vstyle.styles[ll.styles[numCharsInLine]].caseForce == Style::caseUpper)
+ ll.chars[numCharsInLine] = static_cast<char>(toupper(chDoc));
+ else if (vstyle.styles[ll.styles[numCharsInLine]].caseForce == Style::caseLower)
+ ll.chars[numCharsInLine] = static_cast<char>(tolower(chDoc));
numCharsInLine++;
}
}
@@ -4322,6 +4326,12 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
InvalidateStyleRedraw();
}
break;
+ case SCI_STYLESETCASE:
+ if (wParam <= STYLE_MAX) {
+ vs.styles[wParam].caseForce = static_cast<Style::ecaseForced>(lParam);
+ InvalidateStyleRedraw();
+ }
+ break;
case SCI_STYLESETCHARACTERSET:
if (wParam <= STYLE_MAX) {
vs.styles[wParam].characterSet = lParam;