diff options
Diffstat (limited to 'src/widgets/kernel/qwidget.cpp')
-rw-r--r-- | src/widgets/kernel/qwidget.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 850490ff6b..ad0142c5df 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -4285,7 +4285,7 @@ QPoint QWidget::mapFromParent(const QPoint &pos) const QWidget *QWidget::window() const { - QWidget *w = (QWidget *)this; + QWidget *w = const_cast<QWidget *>(this); QWidget *p = w->parentWidget(); while (!w->isWindow() && p) { w = p; @@ -5353,7 +5353,10 @@ void QWidgetPrivate::render_helper(QPainter *painter, const QPoint &targetOffset if (size.isNull()) return; - QPixmap pixmap(size); + const qreal pixmapDevicePixelRatio = qreal(painter->device()->devicePixelRatio()); + QPixmap pixmap(size * pixmapDevicePixelRatio); + pixmap.setDevicePixelRatio(pixmapDevicePixelRatio); + if (!(renderFlags & QWidget::DrawWindowBackground) || !isOpaque) pixmap.fill(Qt::transparent); q->render(&pixmap, QPoint(), toBePainted, renderFlags); |