align serializer with front-end changes
This commit is contained in:
+8
-2
@@ -1799,6 +1799,8 @@ utf8_remap(char *out, char g, char charset)
|
|||||||
struct ScreenSerializeState {
|
struct ScreenSerializeState {
|
||||||
Color lastFg;
|
Color lastFg;
|
||||||
Color lastBg;
|
Color lastBg;
|
||||||
|
Color lastLiveFg;
|
||||||
|
Color lastLiveBg;
|
||||||
CellAttrs lastAttrs;
|
CellAttrs lastAttrs;
|
||||||
UnicodeCacheRef lastSymbol;
|
UnicodeCacheRef lastSymbol;
|
||||||
char lastChar[4];
|
char lastChar[4];
|
||||||
@@ -2091,6 +2093,8 @@ screenSerializeToBuffer(char *buffer, size_t buf_len, ScreenNotifyTopics topics,
|
|||||||
ss->index = 0;
|
ss->index = 0;
|
||||||
ss->lastBg = 0;
|
ss->lastBg = 0;
|
||||||
ss->lastFg = 0;
|
ss->lastFg = 0;
|
||||||
|
ss->lastLiveBg = 0;
|
||||||
|
ss->lastLiveFg = 0;
|
||||||
ss->lastAttrs = 0;
|
ss->lastAttrs = 0;
|
||||||
ss->lastCharLen = 0;
|
ss->lastCharLen = 0;
|
||||||
ss->lastSymbol = 0;
|
ss->lastSymbol = 0;
|
||||||
@@ -2118,8 +2122,8 @@ screenSerializeToBuffer(char *buffer, size_t buf_len, ScreenNotifyTopics topics,
|
|||||||
if (repCnt == 0) {
|
if (repCnt == 0) {
|
||||||
// No repeat - first occurrence
|
// No repeat - first occurrence
|
||||||
bool changeAttrs = ss->first || (cell0->attrs != ss->lastAttrs);
|
bool changeAttrs = ss->first || (cell0->attrs != ss->lastAttrs);
|
||||||
bool changeFg = (cell0->fg != ss->lastFg) && (cell0->attrs & ATTR_FG);
|
bool changeFg = (cell0->fg != ss->lastLiveFg) && (cell0->attrs & ATTR_FG);
|
||||||
bool changeBg = (cell0->bg != ss->lastBg) && (cell0->attrs & ATTR_BG);
|
bool changeBg = (cell0->bg != ss->lastLiveBg) && (cell0->attrs & ATTR_BG);
|
||||||
bool changeColors = ss->first || (changeFg && changeBg);
|
bool changeColors = ss->first || (changeFg && changeBg);
|
||||||
Color fg, bg;
|
Color fg, bg;
|
||||||
ss->first = false;
|
ss->first = false;
|
||||||
@@ -2159,6 +2163,8 @@ screenSerializeToBuffer(char *buffer, size_t buf_len, ScreenNotifyTopics topics,
|
|||||||
|
|
||||||
ss->lastFg = cell0->fg;
|
ss->lastFg = cell0->fg;
|
||||||
ss->lastBg = cell0->bg;
|
ss->lastBg = cell0->bg;
|
||||||
|
if (cell0->attrs & ATTR_FG) ss->lastLiveFg = cell0->fg;
|
||||||
|
if (cell0->attrs & ATTR_BG) ss->lastLiveBg = cell0->bg;
|
||||||
ss->lastAttrs = cell0->attrs;
|
ss->lastAttrs = cell0->attrs;
|
||||||
ss->lastSymbol = cell0->symbol;
|
ss->lastSymbol = cell0->symbol;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user