Don't cache true colors

If a true color has been set it will have code -1 regardless of the
actual color. Therefore, it shouldn't be stored in the color cache
dictionary otherwise all true color cells will be colored the most
recently set value.
This commit is contained in:
Leroy Hopson 2020-09-28 16:13:26 +07:00
parent 0130ce96db
commit 0d14fd1e47

View file

@ -493,7 +493,7 @@ std::pair<Color, Color> Terminal::get_cell_colors(int row, int col)
fb = (float)cell.attr.fb / 255.0; fb = (float)cell.attr.fb / 255.0;
fgcol = Color(fr, fg, fb); fgcol = Color(fr, fg, fb);
if (cell.attr.fccode) if (cell.attr.fccode != -1)
{ {
palette.insert(std::pair<int, Color>(cell.attr.fccode, Color(fr, fg, fb))); palette.insert(std::pair<int, Color>(cell.attr.fccode, Color(fr, fg, fb)));
} }
@ -512,7 +512,7 @@ std::pair<Color, Color> Terminal::get_cell_colors(int row, int col)
bb = (float)cell.attr.bb / 255.0; bb = (float)cell.attr.bb / 255.0;
bgcol = Color(br, bg, bb); bgcol = Color(br, bg, bb);
if (cell.attr.bccode) if (cell.attr.bccode != -1)
{ {
palette.insert(std::pair<int, Color>(cell.attr.bccode, Color(br, bg, bb))); palette.insert(std::pair<int, Color>(cell.attr.bccode, Color(br, bg, bb)));
} }