Group character related isSameAttributes method

wilder
Tomaz Canabrava 4 years ago
parent 33b546b98f
commit dd7cd6b874
  1. 5
      src/characters/Character.h
  2. 4
      src/terminalDisplay/TerminalPainter.cpp

@ -206,6 +206,11 @@ public:
const bool lineDraw = LineBlockCharacters::canDraw(character);
return LineBlockCharacters::canDraw(lhs.character) == lineDraw;
};
inline bool hasSameAttributes(Character lhs) const
{
return hasSameColors(lhs) && hasSameRendition(lhs) && hasSameLineDrawStatus(lhs) && isSameScript(lhs);
}
};
constexpr bool operator==(const Character &a, const Character &b)

@ -111,9 +111,7 @@ void TerminalPainter::drawContents(Character *image,
while (isInsideDrawArea(x + len)) {
Character next_char = image[display->loc(x + len, y)];
if (!char_value.hasSameColors(next_char) || !char_value.hasSameRendition(next_char) || !hasSameWidth(x + len)
|| !char_value.hasSameLineDrawStatus(next_char) || !char_value.isSameScript(next_char)
|| !next_char.canBeGrouped(bidiEnabled, doubleWidth)) {
if (!hasSameWidth(x + len) || !next_char.canBeGrouped(bidiEnabled, doubleWidth) || !char_value.hasSameAttributes(next_char)) {
break;
}

Loading…
Cancel
Save