mirror of
https://github.com/embarklabs/neo-blessed.git
synced 2025-01-10 19:16:20 +00:00
fix setEffects and failed fg/bg 256 color sequences.
This commit is contained in:
parent
9a1411338c
commit
9b77e3df63
@ -1221,7 +1221,8 @@ Screen.prototype.attrCode = function(code, cur, def) {
|
|||||||
} else if (c === 48 && +code[i+1] === 2) {
|
} else if (c === 48 && +code[i+1] === 2) {
|
||||||
i += 2;
|
i += 2;
|
||||||
bg = colors.match(+code[i], +code[i+1], +code[i+2]);
|
bg = colors.match(+code[i], +code[i+1], +code[i+2]);
|
||||||
if (bg === -1) bg = 0x1ff;
|
//if (bg === -1) bg = 0x1ff;
|
||||||
|
if (bg === -1) bg = def & 0x1ff;
|
||||||
i += 2;
|
i += 2;
|
||||||
break;
|
break;
|
||||||
} else if (c === 38 && +code[i+1] === 5) {
|
} else if (c === 38 && +code[i+1] === 5) {
|
||||||
@ -1231,7 +1232,8 @@ Screen.prototype.attrCode = function(code, cur, def) {
|
|||||||
} else if (c === 38 && +code[i+1] === 2) {
|
} else if (c === 38 && +code[i+1] === 2) {
|
||||||
i += 2;
|
i += 2;
|
||||||
fg = colors.match(+code[i], +code[i+1], +code[i+2]);
|
fg = colors.match(+code[i], +code[i+1], +code[i+2]);
|
||||||
if (fg === -1) fg = 0x1ff;
|
//if (fg === -1) fg = 0x1ff;
|
||||||
|
if (fg === -1) fg = (def >> 9) & 0x1ff;
|
||||||
i += 2;
|
i += 2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1554,40 +1556,42 @@ Screen.prototype.setEffects = function(el, fel, over, out, effects, temp) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fel.on(over, function() {
|
fel.on(over, function() {
|
||||||
|
var element = el();
|
||||||
Object.keys(effects).forEach(function(key) {
|
Object.keys(effects).forEach(function(key) {
|
||||||
var val = effects[key];
|
var val = effects[key];
|
||||||
if (val !== null && typeof val === 'object') {
|
if (val !== null && typeof val === 'object') {
|
||||||
tmp[key] = tmp[key] || {};
|
tmp[key] = tmp[key] || {};
|
||||||
Object.keys(val).forEach(function(k) {
|
Object.keys(val).forEach(function(k) {
|
||||||
var v = val[k];
|
var v = val[k];
|
||||||
tmp[key][k] = el()[key][k];
|
tmp[key][k] = element.style[key][k];
|
||||||
el().style[key][k] = v;
|
element.style[key][k] = v;
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
tmp[key] = el().style[key];
|
tmp[key] = element.style[key];
|
||||||
el().style[key] = val;
|
element.style[key] = val;
|
||||||
});
|
});
|
||||||
el().screen.render();
|
element.screen.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
fel.on(out, function() {
|
fel.on(out, function() {
|
||||||
|
var element = el();
|
||||||
Object.keys(effects).forEach(function(key) {
|
Object.keys(effects).forEach(function(key) {
|
||||||
var val = effects[key];
|
var val = effects[key];
|
||||||
if (val !== null && typeof val === 'object') {
|
if (val !== null && typeof val === 'object') {
|
||||||
tmp[key] = tmp[key] || {};
|
tmp[key] = tmp[key] || {};
|
||||||
Object.keys(val).forEach(function(k) {
|
Object.keys(val).forEach(function(k) {
|
||||||
if (tmp[key].hasOwnProperty(k)) {
|
if (tmp[key].hasOwnProperty(k)) {
|
||||||
el().style[key][k] = tmp[key][k];
|
element.style[key][k] = tmp[key][k];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (tmp.hasOwnProperty(key)) {
|
if (tmp.hasOwnProperty(key)) {
|
||||||
el().style[key] = tmp[key];
|
element.style[key] = tmp[key];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
el().screen.render();
|
element.screen.render();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user