summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/kernel/qwidget.cpp')
-rw-r--r--src/widgets/kernel/qwidget.cpp7
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);