From 1573a0d60a3cf054979125c7986566d13a6686d3 Mon Sep 17 00:00:00 2001 From: Neil Date: Sat, 22 Jun 2019 10:51:29 +1000 Subject: Bug [#1924]. Option to allow block carets to trail selection ranges. Bit flag value is CARETSTYLE_BLOCK_AFTER=256. --- src/Editor.cxx | 2 +- src/ViewStyle.cxx | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/Editor.cxx b/src/Editor.cxx index 497d92050..92c77571e 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -7323,7 +7323,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(wParam); else /* Default to the line caret */ diff --git a/src/ViewStyle.cxx b/src/ViewStyle.cxx index 65c4f2f8e..e75184488 100644 --- a/src/ViewStyle.cxx +++ b/src/ViewStyle.cxx @@ -546,10 +546,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; -- cgit v1.2.3