Hi Neil,
The curses platform uses single-phase drawing (`view.phasesDraw =
EditView::phasesOne`). As far as I can tell, there is no curses API that
allows you to ask a cell for its current attributes (including foreground
and background colors) in order to draw text "transparently" in a separate
phase. When you draw into a cell in curses, you must specify both colors
-- there is no "bitwise AND" type of drawing with previous contents.
Furthermore, the curses platform is able to determine what Scintilla is
trying to draw based solely on which of "DrawTextNoClip",
"DrawTextClipped", or "DrawTextTransparent" is being called. For example,
when "DrawTextTransparent" is called, and since I am in single phase
drawing mode, I know Scintilla can only be trying to draw call tip text
and can adjust my "pen" accordingly without it affecting normal text
drawing. If forcing two phase drawing causes this same function to be
called on separate occasions for separate things, then I do not think I'll
be able to differentiate between the two calls and things will end up
looking weird.
The long story short is, being able to use Scintilla in a terminal
application with no changes to Scintilla's drawing code required some
clever tricks that rely on single phase drawing.
> If anyone wants to retain single-phase drawing then please
> communicate. Otherwise I’d like to start deprecating this mode in a
> release or two.
I'd prefer to keep the single-phase option.
Cheers,
Mitchell