From 67575dc496a55f7abda537d64eca4542d9528bb9 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Fri, 16 Oct 2009 09:31:58 +0000 Subject: Setting to make additional carets invisible from Florian Balmer. --- src/Editor.cxx | 13 ++++++++++++- src/Editor.h | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/Editor.cxx b/src/Editor.cxx index 8d48440e5..2825aeb5d 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -151,6 +151,7 @@ Editor::Editor() { multipleSelection = false; additionalSelectionTyping = false; additionalCaretsBlink = true; + additionalCaretsVisible = true; virtualSpaceOptions = SCVS_NONE; pixmapLine = Surface::Allocate(); @@ -3103,8 +3104,10 @@ void Editor::DrawCarets(Surface *surface, ViewStyle &vsDraw, int lineDoc, int xS if (lineStart != 0) // Wrapped xposCaret += ll->wrapIndent; } + bool caretBlinkState = (caret.active && caret.on) || (!additionalCaretsBlink && !mainCaret); + bool caretVisibleState = additionalCaretsVisible || mainCaret; if ((xposCaret >= 0) && (vsDraw.caretWidth > 0) && (vsDraw.caretStyle != CARETSTYLE_INVISIBLE) && - ((posDrag.IsValid()) || ((caret.active && caret.on) || (!additionalCaretsBlink && !mainCaret)))) { + ((posDrag.IsValid()) || (caretBlinkState && caretVisibleState))) { bool caretAtEOF = false; bool caretAtEOL = false; bool drawBlockCaret = false; @@ -8206,6 +8209,14 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { case SCI_GETADDITIONALCARETSBLINK: return additionalCaretsBlink; + case SCI_SETADDITIONALCARETSVISIBLE: + additionalCaretsVisible = wParam != 0; + InvalidateCaret(); + break; + + case SCI_GETADDITIONALCARETSVISIBLE: + return additionalCaretsVisible; + case SCI_GETSELECTIONS: return sel.Count(); diff --git a/src/Editor.h b/src/Editor.h index 8f1ca9b7c..fb29b3df7 100644 --- a/src/Editor.h +++ b/src/Editor.h @@ -143,6 +143,7 @@ protected: // ScintillaBase subclass needs access to much of Editor bool multipleSelection; bool additionalSelectionTyping; bool additionalCaretsBlink; + bool additionalCaretsVisible; int virtualSpaceOptions; -- cgit v1.2.3