aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorZufu Liu <unknown>2020-03-19 08:53:15 +1100
committerZufu Liu <unknown>2020-03-19 08:53:15 +1100
commit63fcc3edaf7ca501fdf7d6d98bb0a5de24939f71 (patch)
treeddcef2af54c9c3d3ab4cc1b9adec80df78808f49 /src
parentd37556bb750b9e03263036ea2e6afe4ee8dab79a (diff)
downloadscintilla-mirror-63fcc3edaf7ca501fdf7d6d98bb0a5de24939f71.tar.gz
Backport: Feature [feature-requests:1302] Add IsCaretVisible to simplify DrawCarets.
Backport of changeset 8010:4b365fa302a2.
Diffstat (limited to 'src')
-rw-r--r--src/EditView.cxx2
-rw-r--r--src/ViewStyle.cxx4
-rw-r--r--src/ViewStyle.h1
3 files changed, 6 insertions, 1 deletions
diff --git a/src/EditView.cxx b/src/EditView.cxx
index 9418cf597..f2b4e6c03 100644
--- a/src/EditView.cxx
+++ b/src/EditView.cxx
@@ -1353,7 +1353,7 @@ void EditView::DrawCarets(Surface *surface, const EditModel &model, const ViewSt
}
const bool caretBlinkState = (model.caret.active && model.caret.on) || (!additionalCaretsBlink && !mainCaret);
const bool caretVisibleState = additionalCaretsVisible || mainCaret;
- if ((xposCaret >= 0) && (vsDraw.caretWidth > 0) && (vsDraw.caretStyle != CARETSTYLE_INVISIBLE) &&
+ if ((xposCaret >= 0) && vsDraw.IsCaretVisible() &&
(drawDrag || (caretBlinkState && caretVisibleState))) {
bool caretAtEOF = false;
bool caretAtEOL = false;
diff --git a/src/ViewStyle.cxx b/src/ViewStyle.cxx
index 6ec980af4..43b48544c 100644
--- a/src/ViewStyle.cxx
+++ b/src/ViewStyle.cxx
@@ -549,6 +549,10 @@ bool ViewStyle::IsBlockCaretStyle() const noexcept {
(caretStyle & CARETSTYLE_OVERSTRIKE_BLOCK) != 0;
}
+bool ViewStyle::IsCaretVisible() const noexcept {
+ return caretWidth > 0 && caretStyle != CARETSTYLE_INVISIBLE;
+}
+
bool ViewStyle::DrawCaretInsideSelection(bool inOverstrike, bool imeCaretBlockOverride) const noexcept {
if (caretStyle & CARETSTYLE_BLOCK_AFTER)
return false;
diff --git a/src/ViewStyle.h b/src/ViewStyle.h
index 0235b3651..7f6853f13 100644
--- a/src/ViewStyle.h
+++ b/src/ViewStyle.h
@@ -201,6 +201,7 @@ public:
enum class CaretShape { invisible, line, block, bar };
bool IsBlockCaretStyle() const noexcept;
+ bool IsCaretVisible() const noexcept;
bool DrawCaretInsideSelection(bool inOverstrike, bool imeCaretBlockOverride) const noexcept;
CaretShape CaretShapeForMode(bool inOverstrike) const noexcept;