1515#include < DGuiApplicationHelper>
1616
1717DGUI_USE_NAMESPACE
18+ DCORE_USE_NAMESPACE
1819
1920namespace dock {
2021
22+ constexpr int KWinOptimalPerformance = 4 ;
23+ const QString windowEffectTypeKey = QStringLiteral(" user_type" );
24+
2125MultiTaskView::MultiTaskView (QObject *parent)
2226 : DApplet(parent)
2327 , m_iconName(" deepin-multitasking-view" )
@@ -26,6 +30,19 @@ MultiTaskView::MultiTaskView(QObject *parent)
2630 auto platformName = QGuiApplication::platformName ();
2731 if (QStringLiteral (" wayland" ) == platformName) {
2832 m_multitaskview.reset (new TreeLandMultitaskview);
33+ } else {
34+ m_kWinCompositingConfig = DConfig::create (" org.kde.kwin" , " org.kde.kwin.compositing" , QString (), this );
35+ m_kWinEffect = m_kWinCompositingConfig->value (windowEffectTypeKey).toInt () != KWinOptimalPerformance;
36+
37+ connect (m_kWinCompositingConfig, &DConfig::valueChanged, this , [=] (const QString &key) {
38+ if (key == windowEffectTypeKey) {
39+ bool kWinEffect = m_kWinCompositingConfig->value (windowEffectTypeKey).toInt () != KWinOptimalPerformance;
40+ if (kWinEffect != m_kWinEffect) {
41+ m_kWinEffect = kWinEffect ;
42+ Q_EMIT visibleChanged ();
43+ }
44+ }
45+ });
2946 }
3047}
3148
@@ -65,7 +82,7 @@ void MultiTaskView::setIconName(const QString& iconName)
6582
6683bool MultiTaskView::visible () const
6784{
68- return m_visible && DWindowManagerHelper::instance ()->hasComposite ();
85+ return m_kWinEffect && m_visible && DWindowManagerHelper::instance ()->hasComposite ();
6986}
7087
7188DockItemInfo MultiTaskView::dockItemInfo ()
0 commit comments