From 3f8593835d6833438405d697847bc9f6024e6837 Mon Sep 17 00:00:00 2001 From: linxin Date: Mon, 20 Feb 2023 10:39:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=85=B3=E9=97=AD=E7=AA=97=E5=8F=A3?= =?UTF-8?q?=E7=89=B9=E6=95=88=E5=90=8E,=E4=BB=BB=E5=8A=A1=E6=A0=8F?= =?UTF-8?q?=E6=89=98=E7=9B=98=E7=AA=97=E5=8F=A3=E5=87=BA=E7=8E=B0=E5=9B=9B?= =?UTF-8?q?=E4=B8=AA=E9=BB=91=E8=A7=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 任务栏托盘窗口实现采用的是自定义绘制,与窗口特效不兼容,改用继承DBlurEffectWidget类的方式实现窗口 Log: 修改托盘窗口绘制方式 Bug: https://github.com/linuxdeepin/developer-center/issues/3615 --- .../window/tray/widgets/expandiconwidget.cpp | 20 +++---------------- frame/window/tray/widgets/expandiconwidget.h | 7 +++++-- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/frame/window/tray/widgets/expandiconwidget.cpp b/frame/window/tray/widgets/expandiconwidget.cpp index 1cd9d70aa..f9cccacc7 100644 --- a/frame/window/tray/widgets/expandiconwidget.cpp +++ b/frame/window/tray/widgets/expandiconwidget.cpp @@ -177,7 +177,7 @@ TrayGridWidget *ExpandIconWidget::popupTrayView() Dock::Position TrayGridWidget::m_position = Dock::Position::Bottom; TrayGridWidget::TrayGridWidget(QWidget *parent) - : QWidget (parent) + : DBlurEffectWidget (parent) , m_dockInter(new DockInter(dockServiceName(), dockServicePath(), QDBusConnection::sessionBus(), this)) , m_trayGridView(nullptr) , m_referGridView(nullptr) @@ -241,24 +241,10 @@ void TrayGridWidget::resetPosition() move(ptPos); } -void TrayGridWidget::paintEvent(QPaintEvent *event) -{ - Q_UNUSED(event); - - QPainter painter(this); - painter.setRenderHint(QPainter::Antialiasing); - QPainterPath path; - path.addRoundedRect(rect(), 18, 18); - painter.setCompositionMode(QPainter::CompositionMode_Xor); - painter.setClipPath(path); - - painter.fillPath(path, maskColor()); -} - void TrayGridWidget::showEvent(QShowEvent *event) { m_regionInter->registerRegion(); - QWidget::showEvent(event); + DBlurEffectWidget::showEvent(event); } void TrayGridWidget::hideEvent(QHideEvent *event) @@ -266,7 +252,7 @@ void TrayGridWidget::hideEvent(QHideEvent *event) m_regionInter->unregisterRegion(); // 在当前托盘区域隐藏后,需要设置任务栏区域的展开按钮的托盘为隐藏状态 TrayModel::getDockModel()->updateOpenExpand(false); - QWidget::hideEvent(event); + DBlurEffectWidget::hideEvent(event); } void TrayGridWidget::initMember() diff --git a/frame/window/tray/widgets/expandiconwidget.h b/frame/window/tray/widgets/expandiconwidget.h index 8fca811b9..03e3e09b3 100644 --- a/frame/window/tray/widgets/expandiconwidget.h +++ b/frame/window/tray/widgets/expandiconwidget.h @@ -10,6 +10,10 @@ #include "basetraywidget.h" #include "dbusutil.h" +#include + +DWIDGET_USE_NAMESPACE + class TrayGridView; class TrayModel; class TrayDelegate; @@ -43,7 +47,7 @@ private: }; // 绘制圆角窗体 -class TrayGridWidget : public QWidget +class TrayGridWidget : public DBlurEffectWidget { Q_OBJECT @@ -57,7 +61,6 @@ public: void resetPosition(); protected: - void paintEvent(QPaintEvent *event) override; void showEvent(QShowEvent *event) override; void hideEvent(QHideEvent *event) override;