No this third colour is something different. It is used in a specific
circumstance but is undocumented and unchangeable.
I would ask the Scintilla developers what the purpose of the colour
(implemented as ViewStyle::selBackground2) is. (Assuming it is still
in
the current code.)
I've looked at the Scintilla source code a bit and it seems you're
right,
that 3rd
undocumented color is a read-only color initialized in ViewStyle.cxx
at:
https://github.com/brupelo/scintilla/blob/master/src/ViewStyle.cxx#L84
https://github.com/brupelo/scintilla/blob/master/src/ViewStyle.cxx#L211
it's initialized in both ViewStyle default and copy constructors.
And then used through this function
https://github.com/brupelo/scintilla/blob/master/src/EditView.cxx#L831-L835,
we can see that color will be used when main=True and
primarySelection=False, if we inspect a little bit more that
EditView.cxx
file
we'll see this function is called in few places such as:
return SelectionBackground(vsDraw, true, model.primarySelection);
return SelectionBackground(vsDraw, false, model.primarySelection);
surface->FillRectangle(rcSegment, SelectionBackground(vsDraw, r ==
model.sel.Main(), model.primarySelection));
surface->FillRectangle(rcSegment, SelectionBackground(vsDraw,
eolInSelection == 1, model.primarySelection));
SimpleAlphaRectangle(surface, rcSegment, SelectionBackground(vsDraw,
eolInSelection == 1, model.primarySelection), alpha);
surface->FillRectangle(rcSegment, SelectionBackground(vsDraw,
eolInSelection == 1, model.primarySelection));
SimpleAlphaRectangle(surface, rcSegment, SelectionBackground(vsDraw,
eolInSelection == 1, model.primarySelection), alpha);
SimpleAlphaRectangle(surface, rcSegment, SelectionBackground(vsDraw,
eolInSelection == 1, model.primarySelection), alpha);
const ColourDesired background = SelectionBackground(vsDraw, r ==
model.sel.Main(), model.primarySelection);
SimpleAlphaRectangle(surface, rcSegment, SelectionBackground(vsDraw, r
==
model.sel.Main(), model.primarySelection), alpha);
surface->FillRectangle(rcArea, SelectionBackground(vsDraw,
eolInSelection
== 1, model.primarySelection));
SimpleAlphaRectangle(surface, rcArea, SelectionBackground(vsDraw,
eolInSelection == 1, model.primarySelection), alpha);
if we analize the above set of calls we'll see there are some unique
cases
from the whole set:
SelectionBackground(vsDraw, eolInSelection == 1,
model.primarySelection);
SelectionBackground(vsDraw, false, model.primarySelection);
SelectionBackground(vsDraw, r == model.sel.Main(),
model.primarySelection);
SelectionBackground(vsDraw, true, model.primarySelection);
if we've get rid of the 2nd one, the only cases where that color could
will
be used is on these calls:
SelectionBackground(vsDraw, eolInSelection == 1,
model.primarySelection);
SelectionBackground(vsDraw, r == model.sel.Main(),
model.primarySelection);
SelectionBackground(vsDraw, true, model.primarySelection);
Of course this doesn't explain the "human" meaning of that color but at
least gives more background about it :/
Btw, it'd be great eventually to be able to build QScintilla myself so
i
could help to debug these type of issues... unfortunately when I
attempted to do so I've failed miserably :( . I'm on
win7+latest_sip+latest_qscintilla and I've got
vs2008/2010/2012/2015/2017
and yeah,
before you post the link I've read the provided docs at qscintilla :) ,
could you advice?