diff --git a/frame/util/imageutil.cpp b/frame/util/imageutil.cpp index 4d68778a8..a15a9b5d9 100644 --- a/frame/util/imageutil.cpp +++ b/frame/util/imageutil.cpp @@ -47,7 +47,9 @@ const QPixmap ImageUtil::loadSvg(const QString &iconName, const QString &localPa if (!icon.isNull()) { QPixmap pixmap = icon.pixmap(pixmapSize); pixmap.setDevicePixelRatio(ratio); - return pixmap; + if (ratio == 1) + return pixmap; + return pixmap.scaled(size * ratio, size * ratio); } QPixmap pixmap(pixmapSize, pixmapSize); @@ -61,7 +63,10 @@ const QPixmap ImageUtil::loadSvg(const QString &iconName, const QString &localPa painter.end(); pixmap.setDevicePixelRatio(ratio); - return pixmap; + if (ratio == 1) + return pixmap; + + return pixmap.scaled(size * ratio, size * ratio); } const QPixmap ImageUtil::loadSvg(const QString &iconName, const QSize size, const qreal ratio) @@ -70,6 +75,14 @@ const QPixmap ImageUtil::loadSvg(const QString &iconName, const QSize size, cons if (!icon.isNull()) { QPixmap pixmap = icon.pixmap(QCoreApplication::testAttribute(Qt::AA_UseHighDpiPixmaps) ? size : QSize(size * ratio)); pixmap.setDevicePixelRatio(ratio); + if (ratio == 1) + return pixmap; + + if (pixmap.size().width() > size.width() * ratio) + pixmap = pixmap.scaledToWidth(size.width() * ratio); + if (pixmap.size().height() > size.height() * ratio) + pixmap = pixmap.scaledToHeight(size.height() * ratio); + return pixmap; } return QPixmap(); diff --git a/plugins/multitasking/multitaskingplugin.cpp b/plugins/multitasking/multitaskingplugin.cpp index a8b5c7858..b4cb1ef97 100644 --- a/plugins/multitasking/multitaskingplugin.cpp +++ b/plugins/multitasking/multitaskingplugin.cpp @@ -169,5 +169,5 @@ PluginsItemInterface::PluginType MultitaskingPlugin::type() PluginFlags MultitaskingPlugin::flags() const { - return PluginFlag::Type_Fixed; + return PluginFlag::Type_Fixed | PluginFlag::Attribute_ForceDock; } diff --git a/plugins/show-desktop/showdesktopplugin.cpp b/plugins/show-desktop/showdesktopplugin.cpp index 3f6b94f31..56c9cc760 100644 --- a/plugins/show-desktop/showdesktopplugin.cpp +++ b/plugins/show-desktop/showdesktopplugin.cpp @@ -166,7 +166,7 @@ PluginsItemInterface::PluginType ShowDesktopPlugin::type() PluginFlags ShowDesktopPlugin::flags() const { - return PluginFlag::Type_Fixed; + return PluginFlag::Type_Fixed | PluginFlag::Attribute_ForceDock; } void ShowDesktopPlugin::updateVisible() diff --git a/plugins/trash/trashwidget.cpp b/plugins/trash/trashwidget.cpp index 387bc1655..471ace5ba 100644 --- a/plugins/trash/trashwidget.cpp +++ b/plugins/trash/trashwidget.cpp @@ -221,6 +221,7 @@ void TrashWidget::updateIcon() int pixmapSize = QCoreApplication::testAttribute(Qt::AA_UseHighDpiPixmaps) ? size : int(size * ratio); m_icon = icon.pixmap(pixmapSize, pixmapSize); m_icon.setDevicePixelRatio(ratio); + m_icon = m_icon.scaled(pixmapSize * ratio, pixmapSize * ratio); } void TrashWidget::updateIconAndRefresh()