mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +00:00
fix: 关闭窗口特效后,任务栏托盘窗口出现四个黑角
任务栏托盘窗口实现采用的是自定义绘制,与窗口特效不兼容,改用继承DBlurEffectWidget类的方式实现窗口 Log: 修改托盘窗口绘制方式 Bug: https://github.com/linuxdeepin/developer-center/issues/3615
This commit is contained in:
parent
d57ec415cd
commit
3f8593835d
@ -177,7 +177,7 @@ TrayGridWidget *ExpandIconWidget::popupTrayView()
|
|||||||
Dock::Position TrayGridWidget::m_position = Dock::Position::Bottom;
|
Dock::Position TrayGridWidget::m_position = Dock::Position::Bottom;
|
||||||
|
|
||||||
TrayGridWidget::TrayGridWidget(QWidget *parent)
|
TrayGridWidget::TrayGridWidget(QWidget *parent)
|
||||||
: QWidget (parent)
|
: DBlurEffectWidget (parent)
|
||||||
, m_dockInter(new DockInter(dockServiceName(), dockServicePath(), QDBusConnection::sessionBus(), this))
|
, m_dockInter(new DockInter(dockServiceName(), dockServicePath(), QDBusConnection::sessionBus(), this))
|
||||||
, m_trayGridView(nullptr)
|
, m_trayGridView(nullptr)
|
||||||
, m_referGridView(nullptr)
|
, m_referGridView(nullptr)
|
||||||
@ -241,24 +241,10 @@ void TrayGridWidget::resetPosition()
|
|||||||
move(ptPos);
|
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)
|
void TrayGridWidget::showEvent(QShowEvent *event)
|
||||||
{
|
{
|
||||||
m_regionInter->registerRegion();
|
m_regionInter->registerRegion();
|
||||||
QWidget::showEvent(event);
|
DBlurEffectWidget::showEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TrayGridWidget::hideEvent(QHideEvent *event)
|
void TrayGridWidget::hideEvent(QHideEvent *event)
|
||||||
@ -266,7 +252,7 @@ void TrayGridWidget::hideEvent(QHideEvent *event)
|
|||||||
m_regionInter->unregisterRegion();
|
m_regionInter->unregisterRegion();
|
||||||
// 在当前托盘区域隐藏后,需要设置任务栏区域的展开按钮的托盘为隐藏状态
|
// 在当前托盘区域隐藏后,需要设置任务栏区域的展开按钮的托盘为隐藏状态
|
||||||
TrayModel::getDockModel()->updateOpenExpand(false);
|
TrayModel::getDockModel()->updateOpenExpand(false);
|
||||||
QWidget::hideEvent(event);
|
DBlurEffectWidget::hideEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TrayGridWidget::initMember()
|
void TrayGridWidget::initMember()
|
||||||
|
@ -10,6 +10,10 @@
|
|||||||
#include "basetraywidget.h"
|
#include "basetraywidget.h"
|
||||||
#include "dbusutil.h"
|
#include "dbusutil.h"
|
||||||
|
|
||||||
|
#include <DBlurEffectWidget>
|
||||||
|
|
||||||
|
DWIDGET_USE_NAMESPACE
|
||||||
|
|
||||||
class TrayGridView;
|
class TrayGridView;
|
||||||
class TrayModel;
|
class TrayModel;
|
||||||
class TrayDelegate;
|
class TrayDelegate;
|
||||||
@ -43,7 +47,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 绘制圆角窗体
|
// 绘制圆角窗体
|
||||||
class TrayGridWidget : public QWidget
|
class TrayGridWidget : public DBlurEffectWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
@ -57,7 +61,6 @@ public:
|
|||||||
void resetPosition();
|
void resetPosition();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void paintEvent(QPaintEvent *event) override;
|
|
||||||
void showEvent(QShowEvent *event) override;
|
void showEvent(QShowEvent *event) override;
|
||||||
void hideEvent(QHideEvent *event) override;
|
void hideEvent(QHideEvent *event) override;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user