aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Editor.cxx23
-rw-r--r--src/ViewStyle.cxx2
-rw-r--r--src/ViewStyle.h1
3 files changed, 26 insertions, 0 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index bcaa8f839..b2d29da13 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -2273,6 +2273,21 @@ void Editor::DrawEOL(Surface *surface, ViewStyle &vsDraw, PRectangle rcLine, Lin
surface->FillRectangle(rcSegment, vsDraw.styles[STYLE_DEFAULT].back.allocated);
}
+ if (vsDraw.selEOLFilled && eolInSelection && vsDraw.selbackset && (line < pdoc->LinesTotal() - 1) && (vsDraw.selAlpha == SC_ALPHA_NOALPHA)) {
+ surface->FillRectangle(rcSegment, SelectionBackground(vsDraw));
+ } else {
+ if (overrideBackground) {
+ surface->FillRectangle(rcSegment, background);
+ } else if (vsDraw.styles[ll->styles[ll->numCharsInLine] & styleMask].eolFilled) {
+ surface->FillRectangle(rcSegment, vsDraw.styles[ll->styles[ll->numCharsInLine] & styleMask].back.allocated);
+ } else {
+ surface->FillRectangle(rcSegment, vsDraw.styles[STYLE_DEFAULT].back.allocated);
+ }
+ if (vsDraw.selEOLFilled && eolInSelection && vsDraw.selbackset && (line < pdoc->LinesTotal() - 1) && (vsDraw.selAlpha != SC_ALPHA_NOALPHA)) {
+ SimpleAlphaRectangle(surface, rcSegment, SelectionBackground(vsDraw), vsDraw.selAlpha);
+ }
+ }
+
if (drawWrapMarkEnd) {
PRectangle rcPlace = rcSegment;
@@ -6898,6 +6913,14 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
case SCI_GETSELALPHA:
return vs.selAlpha;
+ case SCI_GETSELEOLFILLED:
+ return vs.selEOLFilled;
+
+ case SCI_SETSELEOLFILLED:
+ vs.selEOLFilled = wParam != 0;
+ InvalidateStyleRedraw();
+ break;
+
case SCI_SETWHITESPACEFORE:
vs.whitespaceForegroundSet = wParam != 0;
vs.whitespaceForeground.desired = ColourDesired(lParam);
diff --git a/src/ViewStyle.cxx b/src/ViewStyle.cxx
index b4da30ace..b6b14da9b 100644
--- a/src/ViewStyle.cxx
+++ b/src/ViewStyle.cxx
@@ -74,6 +74,7 @@ ViewStyle::ViewStyle(const ViewStyle &source) {
selbackground.desired = source.selbackground.desired;
selbackground2.desired = source.selbackground2.desired;
selAlpha = source.selAlpha;
+ selEOLFilled = source.selEOLFilled;
foldmarginColourSet = source.foldmarginColourSet;
foldmarginColour.desired = source.foldmarginColour.desired;
@@ -143,6 +144,7 @@ void ViewStyle::Init() {
selbackground.desired = ColourDesired(0xc0, 0xc0, 0xc0);
selbackground2.desired = ColourDesired(0xb0, 0xb0, 0xb0);
selAlpha = SC_ALPHA_NOALPHA;
+ selEOLFilled = false;
foldmarginColourSet = false;
foldmarginColour.desired = ColourDesired(0xff, 0, 0);
diff --git a/src/ViewStyle.h b/src/ViewStyle.h
index 75f899d97..86eae63c0 100644
--- a/src/ViewStyle.h
+++ b/src/ViewStyle.h
@@ -54,6 +54,7 @@ public:
ColourPair selbackground;
ColourPair selbackground2;
int selAlpha;
+ bool selEOLFilled;
bool whitespaceForegroundSet;
ColourPair whitespaceForeground;
bool whitespaceBackgroundSet;