diff --git a/src/TerminalDisplay.cpp b/src/TerminalDisplay.cpp --- a/src/TerminalDisplay.cpp +++ b/src/TerminalDisplay.cpp @@ -791,10 +791,7 @@ void TerminalDisplay::drawLineCharString(QPainter& painter, int x, int y, const QString& str, const Character* attributes) { - painter.save(); - painter.setRenderHint(QPainter::Antialiasing); - - const QPen& originalPen = painter.pen(); + const QPen originalPen = painter.pen(); if (((attributes->rendition & RE_BOLD) != 0) && _boldIntense) { QPen boldPen(originalPen); @@ -811,7 +808,7 @@ } } - painter.restore(); + painter.setPen(originalPen); } void TerminalDisplay::setKeyboardCursorShape(Enum::CursorShapeEnum shape) @@ -909,10 +906,10 @@ QColor color(backgroundColor); color.setAlpha(qAlpha(_blendColor)); - painter.save(); + const QPainter::CompositionMode originalMode = painter.compositionMode(); painter.setCompositionMode(QPainter::CompositionMode_Source); painter.fillRect(rect, color); - painter.restore(); + painter.setCompositionMode(originalMode); #endif } else { painter.fillRect(rect, backgroundColor); @@ -1041,8 +1038,6 @@ const QString& text, const Character* style) { - painter.save(); - // setup painter const QColor foregroundColor = style->foregroundColor.color(_colorTable); const QColor backgroundColor = style->backgroundColor.color(_colorTable); @@ -1062,8 +1057,6 @@ // draw text drawCharacters(painter, rect, text, style, invertCharacterColor); - - painter.restore(); } void TerminalDisplay::drawPrinterFriendlyTextFragment(QPainter& painter, @@ -1071,8 +1064,6 @@ const QString& text, const Character* style) { - painter.save(); - // Set the colors used to draw to black foreground and white // background for printer friendly output when printing Character print_style = *style; @@ -1081,8 +1072,6 @@ // draw text drawCharacters(painter, rect, text, &print_style, false); - - painter.restore(); } void TerminalDisplay::setRandomSeed(uint randomSeed) @@ -1499,6 +1488,10 @@ drawBackground(paint, rect, getBackgroundColor(), true /* use opacity setting */); } + if (_antialiasText) { + paint.setRenderHint(QPainter::HighQualityAntialiasing); + } + foreach(const QRect & rect, dirtyImageRegion.rects()) { drawContents(paint, rect); }