aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Editor.cxx2
-rw-r--r--src/ViewStyle.cxx5
2 files changed, 5 insertions, 2 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index fd89d1e5e..e963ba339 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -7310,7 +7310,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
return vs.caretcolour.AsInteger();
case SCI_SETCARETSTYLE:
- if (wParam <= (CARETSTYLE_BLOCK | CARETSTYLE_OVERSTRIKE_BLOCK))
+ if (wParam <= (CARETSTYLE_BLOCK | CARETSTYLE_OVERSTRIKE_BLOCK | CARETSTYLE_BLOCK_AFTER))
vs.caretStyle = static_cast<int>(wParam);
else
/* Default to the line caret */
diff --git a/src/ViewStyle.cxx b/src/ViewStyle.cxx
index c867c2f76..ec6d8e52c 100644
--- a/src/ViewStyle.cxx
+++ b/src/ViewStyle.cxx
@@ -545,10 +545,13 @@ bool ViewStyle::SetWrapIndentMode(int wrapIndentMode_) noexcept {
}
bool ViewStyle::IsBlockCaretStyle() const noexcept {
- return (caretStyle == CARETSTYLE_BLOCK) || (caretStyle & CARETSTYLE_OVERSTRIKE_BLOCK) != 0;
+ return ((caretStyle & CARETSTYLE_INS_MASK) == CARETSTYLE_BLOCK) ||
+ (caretStyle & CARETSTYLE_OVERSTRIKE_BLOCK) != 0;
}
bool ViewStyle::DrawCaretInsideSelection(bool inOverstrike, bool imeCaretBlockOverride) const noexcept {
+ if (caretStyle & CARETSTYLE_BLOCK_AFTER)
+ return false;
return ((caretStyle & CARETSTYLE_INS_MASK) == CARETSTYLE_BLOCK) ||
(inOverstrike && (caretStyle & CARETSTYLE_OVERSTRIKE_BLOCK) != 0) ||
imeCaretBlockOverride;