From 089a085061a872fdfddbfca8841768e76a990831 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Wed, 30 Aug 2023 22:17:35 +0300 Subject: [PATCH] ksnapshot: use the same pixmap size as KPixmapWidget for the drag because the preview pixmap size depends on the size of ksnapshot itself it may be very big and the drag pixmap itself may be big covering way too much screen space if not down-scaled to a reasonable size Signed-off-by: Ivailo Monev --- ksnapshot/ksnapshot.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ksnapshot/ksnapshot.cpp b/ksnapshot/ksnapshot.cpp index c24ae0a8..605cc4d2 100644 --- a/ksnapshot/ksnapshot.cpp +++ b/ksnapshot/ksnapshot.cpp @@ -347,7 +347,13 @@ void KSnapshot::slotDragSnapshot() drag->setMimeData(new QMimeData); drag->mimeData()->setImageData(snapshot); drag->mimeData()->setData("application/x-kde-suggestedfilename", filename.fileName().toUtf8()); - drag->setPixmap(preview()); + const QPixmap previewPixmap = preview(); + if (!previewPixmap.isNull()) { + // NOTE: keep in sync with: + // kdelibs/kdeui/widgets/kpixmapwidget.cpp + drag->setPixmap(previewPixmap.scaled(QSize(96, 96), Qt::KeepAspectRatio)); + drag->setHotSpot(QPoint(-5,-7)); + } QList urls; urls << urlToOpen(); drag->mimeData()->setUrls(urls);