diff options
author | Zufu Liu <unknown> | 2020-03-19 08:54:52 +1100 |
---|---|---|
committer | Zufu Liu <unknown> | 2020-03-19 08:54:52 +1100 |
commit | 2fe586ccb1828df480fbc398b6f34e0a352d202a (patch) | |
tree | db71c48803f7b4eea70b56d54e47f8d044dde3d0 | |
parent | 1b955a332fdea892683764467ca64f0704e98dab (diff) | |
download | scintilla-mirror-2fe586ccb1828df480fbc398b6f34e0a352d202a.tar.gz |
Feature [feature-requests:1302] Simplify DrawCarets.
-rw-r--r-- | src/EditView.cxx | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/EditView.cxx b/src/EditView.cxx index 9d8b6117b..023930c0a 100644 --- a/src/EditView.cxx +++ b/src/EditView.cxx @@ -1458,18 +1458,17 @@ void EditView::DrawCarets(Surface *surface, const EditModel &model, const ViewSt const bool caretVisibleState = additionalCaretsVisible || mainCaret; if ((xposCaret >= 0) && vsDraw.IsCaretVisible() && (drawDrag || (caretBlinkState && caretVisibleState))) { - bool caretAtEOF = false; - bool caretAtEOL = false; + bool canDrawBlockCaret = true; bool drawBlockCaret = false; XYPOSITION widthOverstrikeCaret; XYPOSITION caretWidthOffset = 0; PRectangle rcCaret = rcLine; if (posCaret.Position() == model.pdoc->Length()) { // At end of document - caretAtEOF = true; + canDrawBlockCaret = false; widthOverstrikeCaret = vsDraw.aveCharWidth; } else if ((posCaret.Position() - posLineStart) >= ll->numCharsInLine) { // At end of line - caretAtEOL = true; + canDrawBlockCaret = false; widthOverstrikeCaret = vsDraw.aveCharWidth; } else { const int widthChar = model.pdoc->LenChar(posCaret.Position()); @@ -1494,7 +1493,7 @@ void EditView::DrawCarets(Surface *surface, const EditModel &model, const ViewSt } else if ((caretShape == ViewStyle::CaretShape::block) || imeCaretBlockOverride) { /* Block caret */ rcCaret.left = xposCaret; - if (!caretAtEOL && !caretAtEOF && (ll->chars[offset] != '\t') && !(IsControlCharacter(ll->chars[offset]))) { + if (canDrawBlockCaret && !(IsControlCharacter(ll->chars[offset]))) { drawBlockCaret = true; rcCaret.right = xposCaret + widthOverstrikeCaret; } else { |