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 | 4023128077c54e37ea9c35e2ab56abf10b36c9ba (patch) | |
| tree | 375b4bf729657c789eceb4a1007ee51978ce0f9b /src | |
| parent | 63fcc3edaf7ca501fdf7d6d98bb0a5de24939f71 (diff) | |
| download | scintilla-mirror-4023128077c54e37ea9c35e2ab56abf10b36c9ba.tar.gz | |
Backport: Feature [feature-requests:1302] Simplify DrawCarets.
Backport of changeset 8011:bf8531a046ff.
Diffstat (limited to 'src')
| -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 f2b4e6c03..300209f0f 100644 --- a/src/EditView.cxx +++ b/src/EditView.cxx @@ -1355,18 +1355,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()); @@ -1391,7 +1390,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 { | 
