From 45934586be616146b0af470983ba8963e869bd36 Mon Sep 17 00:00:00 2001 From: Neil Date: Wed, 19 May 2021 14:48:00 +1000 Subject: Bug [#2253]. Remove SC_ELEMENT_CARET_SECONDARY as it caused unexpected change to caret appearance for empty selection as empty selections can not be primary. --- doc/ScintillaDoc.html | 12 +----------- include/Scintilla.h | 1 - include/Scintilla.iface | 1 - src/EditView.cxx | 4 +--- src/ViewStyle.cxx | 2 -- 5 files changed, 2 insertions(+), 18 deletions(-) diff --git a/doc/ScintillaDoc.html b/doc/ScintillaDoc.html index e24a7a9ad..43fcab2dc 100644 --- a/doc/ScintillaDoc.html +++ b/doc/ScintillaDoc.html @@ -3425,14 +3425,6 @@ struct Sci_TextToFind { Colour of caret for additional selections - - SC_ELEMENT_CARET_SECONDARY - 42 - Translucent - All - - Colour of carets when another window has focus - SC_ELEMENT_CARET_LINE_BACK 50 @@ -3514,7 +3506,6 @@ struct Sci_TextToFind {
SC_ELEMENT_SELECTION_SECONDARY_TEXT : colouralpha
SC_ELEMENT_SELECTION_SECONDARY_BACK : colouralpha
- SC_ELEMENT_CARET_SECONDARY : colouralpha

SC_ELEMENT_SELECTION_NO_FOCUS_TEXT : colouralpha
SC_ELEMENT_SELECTION_NO_FOCUS_BACK : colouralpha
@@ -3629,8 +3620,7 @@ struct Sci_TextToFind {

SC_ELEMENT_SELECTION_SECONDARY_TEXT : colouralpha
- SC_ELEMENT_SELECTION_SECONDARY_TEXT : colouralpha
- SC_ELEMENT_CARET_SECONDARY : colouralpha
+ SC_ELEMENT_SELECTION_SECONDARY_BACK : colouralpha
On Unix systems running with the X window system or Wayland there is a 'primary selection' which is the text most recently selected in any application and which can be pasted by a middle button click. When working with a selection, it is commonly the primary selection so Scintilla draws the primary selection with the main and additional diff --git a/include/Scintilla.h b/include/Scintilla.h index babb7e89c..362d5a1a4 100644 --- a/include/Scintilla.h +++ b/include/Scintilla.h @@ -285,7 +285,6 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam, #define SC_ELEMENT_SELECTION_NO_FOCUS_BACK 17 #define SC_ELEMENT_CARET 40 #define SC_ELEMENT_CARET_ADDITIONAL 41 -#define SC_ELEMENT_CARET_SECONDARY 42 #define SC_ELEMENT_CARET_LINE_BACK 50 #define SC_ELEMENT_WHITE_SPACE 60 #define SC_ELEMENT_WHITE_SPACE_BACK 61 diff --git a/include/Scintilla.iface b/include/Scintilla.iface index 24c7e830d..7304cad56 100644 --- a/include/Scintilla.iface +++ b/include/Scintilla.iface @@ -692,7 +692,6 @@ val SC_ELEMENT_SELECTION_NO_FOCUS_TEXT=16 val SC_ELEMENT_SELECTION_NO_FOCUS_BACK=17 val SC_ELEMENT_CARET=40 val SC_ELEMENT_CARET_ADDITIONAL=41 -val SC_ELEMENT_CARET_SECONDARY=42 val SC_ELEMENT_CARET_LINE_BACK=50 val SC_ELEMENT_WHITE_SPACE=60 val SC_ELEMENT_WHITE_SPACE_BACK=61 diff --git a/src/EditView.cxx b/src/EditView.cxx index a8dffa792..1f92b44c0 100644 --- a/src/EditView.cxx +++ b/src/EditView.cxx @@ -1641,9 +1641,7 @@ void EditView::DrawCarets(Surface *surface, const EditModel &model, const ViewSt rcCaret.left = std::round(xposCaret - caretWidthOffset); rcCaret.right = rcCaret.left + vsDraw.caret.width; } - int elementCaret = mainCaret ? SC_ELEMENT_CARET : SC_ELEMENT_CARET_ADDITIONAL; - if (!model.primarySelection) - elementCaret = SC_ELEMENT_CARET_SECONDARY; + const int elementCaret = mainCaret ? SC_ELEMENT_CARET : SC_ELEMENT_CARET_ADDITIONAL; const ColourAlpha caretColour = *vsDraw.ElementColour(elementCaret); //assert(caretColour.IsOpaque()); if (drawBlockCaret) { diff --git a/src/ViewStyle.cxx b/src/ViewStyle.cxx index ca59fef2c..4e88d9116 100644 --- a/src/ViewStyle.cxx +++ b/src/ViewStyle.cxx @@ -230,11 +230,9 @@ void ViewStyle::Init(size_t stylesSize_) { elementBaseColours[SC_ELEMENT_CARET] = ColourAlpha(0, 0, 0); elementBaseColours[SC_ELEMENT_CARET_ADDITIONAL] = ColourAlpha(0x7f, 0x7f, 0x7f); - elementBaseColours[SC_ELEMENT_CARET_SECONDARY] = ColourAlpha(0, 0, 0, 0x40); elementAllowsTranslucent.insert({ SC_ELEMENT_CARET, SC_ELEMENT_CARET_ADDITIONAL, - SC_ELEMENT_CARET_SECONDARY, }); caret.style = CARETSTYLE_LINE; caret.width = 1; -- cgit v1.2.3