summaryrefslogtreecommitdiffstats
path: root/src/gui/painting
diff options
context:
space:
mode:
authorSamuel Rødal <sroedal@trolltech.com>2009-04-21 10:08:17 (GMT)
committerSamuel Rødal <sroedal@trolltech.com>2009-04-21 10:13:52 (GMT)
commit57f8033b7c1b26dfc91e257d1aaf9266ae67cc8d (patch)
tree4d4ec76646afb9b136350c774795b706913ab46d /src/gui/painting
parentbe7ee29e4b40d2496041873bba753761a6d7b8c4 (diff)
downloadQt-57f8033b7c1b26dfc91e257d1aaf9266ae67cc8d.zip
Qt-57f8033b7c1b26dfc91e257d1aaf9266ae67cc8d.tar.gz
Qt-57f8033b7c1b26dfc91e257d1aaf9266ae67cc8d.tar.bz2
Fix non-opaque text from widget palette being blitted, not blended.
QPainter inherits some properties from the widget, among other font and pen. These are set in the painter's state in initFrom(), but in 4.5 we forgot to call QPaintEngineEx::penChanged() to let an extended paint engine know that the pen has changed. This caused the raster engine to believe it could blit non-opaque text, due to the fast_text flag not being correctly updated. Task-number: 251534 Reviewed-by: Paul
Diffstat (limited to 'src/gui/painting')
-rw-r--r--src/gui/painting/qpainter.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 2fa6a56..ffb273e 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -1484,7 +1484,9 @@ void QPainter::initFrom(const QWidget *widget)
d->state->bgBrush = pal.brush(widget->backgroundRole());
d->state->deviceFont = QFont(widget->font(), const_cast<QWidget*> (widget));
d->state->font = d->state->deviceFont;
- if (d->engine) {
+ if (d->extended) {
+ d->extended->penChanged();
+ } else if (d->engine) {
d->engine->setDirty(QPaintEngine::DirtyPen);
d->engine->setDirty(QPaintEngine::DirtyBrush);
d->engine->setDirty(QPaintEngine::DirtyFont);