aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/EditView.cxx32
1 files changed, 15 insertions, 17 deletions
diff --git a/src/EditView.cxx b/src/EditView.cxx
index 650734ad1..e0a212f48 100644
--- a/src/EditView.cxx
+++ b/src/EditView.cxx
@@ -994,8 +994,11 @@ static ColourRGBA TextBackground(const EditModel &model, const ViewStyle &vsDraw
(i >= ll->edgeColumn) &&
(i < ll->numCharsBeforeEOL))
return vsDraw.theEdge.colour;
- if (inHotspot && vsDraw.ElementColour(Element::HotSpotActiveBack))
- return vsDraw.ElementColour(Element::HotSpotActiveBack)->Opaque();
+ if (inHotspot) {
+ if (const ColourOptional colourHotSpotBack = vsDraw.ElementColour(Element::HotSpotActiveBack)) {
+ return colourHotSpotBack->Opaque();
+ }
+ }
if (background && (styleMain != StyleBraceLight) && (styleMain != StyleBraceBad)) {
return *background;
} else {
@@ -1853,9 +1856,8 @@ namespace {
void DrawWrapIndentAndMarker(Surface *surface, const ViewStyle &vsDraw, const LineLayout *ll,
int xStart, PRectangle rcLine, ColourOptional background, DrawWrapMarkerFn customDrawWrapMarker,
bool caretActive) {
- // default bgnd here..
- surface->FillRectangleAligned(rcLine, Fill(background ? *background :
- vsDraw.styles[StyleDefault].back));
+ // default background here..
+ surface->FillRectangleAligned(rcLine, Fill(background.value_or(vsDraw.styles[StyleDefault].back)));
if (vsDraw.IsLineFrameOpaque(caretActive, ll->containsCaret)) {
// Draw left of frame under marker
@@ -2154,8 +2156,9 @@ void EditView::DrawForeground(Surface *surface, const EditModel &model, const Vi
// Hot-spot foreground
const bool inHotspot = model.hotspot.Valid() && model.hotspot.ContainsCharacter(iDoc);
if (inHotspot) {
- if (vsDraw.ElementColour(Element::HotSpotActive))
- textFore = *vsDraw.ElementColour(Element::HotSpotActive);
+ if (const ColourOptional colourHotSpot = vsDraw.ElementColour(Element::HotSpotActive)) {
+ textFore = *colourHotSpot;
+ }
}
if (vsDraw.indicatorsSetFore) {
// At least one indicator sets the text colour so see if it applies to this segment
@@ -2187,8 +2190,7 @@ void EditView::DrawForeground(Surface *surface, const EditModel &model, const Vi
InSelection inSelection = vsDraw.selection.visible ? model.sel.CharacterInSelection(iDoc) : InSelection::inNone;
if (FlagSet(vsDraw.caret.style, CaretStyle::Curses) && (inSelection == InSelection::inMain))
inSelection = CharacterInCursesSelection(iDoc, model, vsDraw);
- const ColourOptional selectionFore = SelectionForeground(model, vsDraw, inSelection);
- if (selectionFore) {
+ if (const ColourOptional selectionFore = SelectionForeground(model, vsDraw, inSelection)) {
textFore = *selectionFore;
}
ColourRGBA textBack = TextBackground(model, vsDraw, ll, background, inSelection, inHotspot, styleMain, i);
@@ -2314,10 +2316,8 @@ void EditView::DrawForeground(Surface *surface, const EditModel &model, const Vi
PRectangle rcUL = rcSegment;
rcUL.top = rcUL.top + vsDraw.maxAscent + 1;
rcUL.bottom = rcUL.top + 1;
- if (vsDraw.ElementColour(Element::HotSpotActive))
- surface->FillRectangleAligned(rcUL, Fill(*vsDraw.ElementColour(Element::HotSpotActive)));
- else
- surface->FillRectangleAligned(rcUL, Fill(textFore));
+ const ColourOptional colourHotSpot = vsDraw.ElementColour(Element::HotSpotActive);
+ surface->FillRectangleAligned(rcUL, Fill(colourHotSpot.value_or(textFore)));
} else if (vsDraw.styles[styleMain].underline) {
PRectangle rcUL = rcSegment;
rcUL.top = rcUL.top + vsDraw.maxAscent + 1;
@@ -2509,8 +2509,7 @@ static void DrawFoldLines(Surface *surface, const EditModel &model, const ViewSt
}
}
if (lastSubLine && model.pcs->GetVisible(line) && !model.pcs->GetVisible(line + 1)) {
- ColourOptional hiddenLineColour = vsDraw.ElementColour(Element::HiddenLine);
- if (hiddenLineColour) {
+ if (const ColourOptional hiddenLineColour = vsDraw.ElementColour(Element::HiddenLine)) {
surface->FillRectangleAligned(Side(rcLine, Edge::bottom, 1.0), *hiddenLineColour);
}
}
@@ -2720,11 +2719,10 @@ void EditView::FillLineRemainder(Surface *surface, const EditModel &model, const
eolInSelection = model.LineEndInSelection(line);
}
- const ColourOptional background = vsDraw.Background(model.GetMark(line), model.caret.active, ll->containsCaret);
-
if (eolInSelection && vsDraw.selection.eolFilled && (line < model.pdoc->LinesTotal() - 1) && (vsDraw.selection.layer == Layer::Base)) {
surface->FillRectangleAligned(rcArea, Fill(SelectionBackground(model, vsDraw, eolInSelection).Opaque()));
} else {
+ const ColourOptional background = vsDraw.Background(model.GetMark(line), model.caret.active, ll->containsCaret);
if (background) {
surface->FillRectangleAligned(rcArea, Fill(*background));
} else if (vsDraw.styles[ll->styles[ll->numCharsInLine]].eolFilled) {