aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authornyamatongwe <unknown>2008-11-21 04:14:13 +0000
committernyamatongwe <unknown>2008-11-21 04:14:13 +0000
commitfdbd988740df967f41cb5d7dbff50fc9bc4ec28f (patch)
tree510d1ecc7aa2a8290883c474ad702db12c3c8444 /src
parente79cb46e41ed31eea4075ffad48862225e615d79 (diff)
downloadscintilla-mirror-fdbd988740df967f41cb5d7dbff50fc9bc4ec28f.tar.gz
Patch from twhiteman for bug #2126144 wrapping with CARETSTYLE_BLOCK caret
problems.
Diffstat (limited to 'src')
-rw-r--r--src/Editor.cxx11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index ffc2dee22..8910a5b53 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -2693,8 +2693,15 @@ void Editor::DrawBlockCaret(Surface *surface, ViewStyle &vsDraw, LineLayout *ll,
}
// We now know what to draw, update the caret drawing rectangle
- rcCaret.left = ll->positions[offsetFirstChar] - ll->positions[ll->LineStart(subLine)] + xStart;
- rcCaret.right = ll->positions[offsetFirstChar+numCharsToDraw] - ll->positions[ll->LineStart(subLine)] + xStart;
+ rcCaret.left = ll->positions[offsetFirstChar] - ll->positions[lineStart] + xStart;
+ rcCaret.right = ll->positions[offsetFirstChar+numCharsToDraw] - ll->positions[lineStart] + xStart;
+
+ // Adjust caret position to take into account any word wrapping symbols.
+ if ((actualWrapVisualStartIndent != 0) && (lineStart != 0)) {
+ int wordWrapCharWidth = actualWrapVisualStartIndent * vs.aveCharWidth;
+ rcCaret.left += wordWrapCharWidth;
+ rcCaret.right += wordWrapCharWidth;
+ }
// This character is where the caret block is, we override the colours
// (inversed) for drawing the caret here.