diff options
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r-- | src/Editor.cxx | 10 |
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; |