From 03c4752e2635772df448d9a3f3461b708982acd6 Mon Sep 17 00:00:00 2001 From: Neil Date: Tue, 15 Apr 2014 14:47:02 +1000 Subject: Bug [#1592]. Fix bug where caret remained invisible when period set to 0. --- src/Editor.cxx | 10 +++++++++- src/Editor.h | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/Editor.cxx b/src/Editor.cxx index 1337a0e05..6cb33a07a 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -1542,6 +1542,14 @@ void Editor::DropCaret() { InvalidateCaret(); } +void Editor::CaretSetPeriod(int period) { + if (caret.period != period) { + caret.period = period; + caret.on = true; + InvalidateCaret(); + } +} + void Editor::InvalidateCaret() { if (posDrag.IsValid()) { InvalidateRange(posDrag.Position(), posDrag.Position() + 1); @@ -7816,7 +7824,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return caret.period; case SCI_SETCARETPERIOD: - caret.period = wParam; + CaretSetPeriod(wParam); break; case SCI_GETWORDCHARS: diff --git a/src/Editor.h b/src/Editor.h index 810175b58..532211283 100644 --- a/src/Editor.h +++ b/src/Editor.h @@ -420,6 +420,7 @@ protected: // ScintillaBase subclass needs access to much of Editor void ScrollRange(SelectionRange range); void ShowCaretAtCurrentPosition(); void DropCaret(); + void CaretSetPeriod(int period); void InvalidateCaret(); virtual void UpdateSystemCaret(); -- cgit v1.2.3