@@ -22,7 +22,6 @@ WaylandDockHelper::WaylandDockHelper(DockPanel *panel)
2222 , m_isCurrentActiveWindowFullscreened(false )
2323 , m_panel(panel)
2424{
25- m_wallpaperColorManager.reset (new WallpaperColorManager (this ));
2625 m_ddeShellManager.reset (new TreeLandDDEShellManager ());
2726 DS_NAMESPACE ::DAppletBridge bridge (" org.deepin.ds.dock.taskmanager" );
2827 if (auto applet = bridge.applet ()) {
@@ -37,19 +36,6 @@ WaylandDockHelper::WaylandDockHelper(DockPanel *panel)
3736 }
3837 }
3938
40- connect (m_panel, &DockPanel::rootObjectChanged, this , [this ]() {
41- m_wallpaperColorManager->watchScreen (dockScreenName ());
42- });
43-
44- connect (m_wallpaperColorManager.get (), &WallpaperColorManager::activeChanged, this , [this ]() {
45- if (m_panel->rootObject () != nullptr ) {
46- m_wallpaperColorManager->watchScreen (dockScreenName ());
47- }
48- });
49-
50- connect (m_panel, &DockPanel::dockScreenChanged, this , [this ]() {
51- m_wallpaperColorManager->watchScreen (dockScreenName ());
52- });
5339
5440 connect (m_panel, &DockPanel::positionChanged, this , &WaylandDockHelper::updateOverlapCheckerPos);
5541 connect (m_panel, &DockPanel::dockSizeChanged, this , &WaylandDockHelper::updateOverlapCheckerPos);
@@ -73,9 +59,6 @@ WaylandDockHelper::WaylandDockHelper(DockPanel *panel)
7359 }
7460 });
7561
76- if (m_panel->rootObject () != nullptr ) {
77- m_wallpaperColorManager->watchScreen (dockScreenName ());
78- }
7962}
8063
8164void WaylandDockHelper::updateOverlapCheckerPos ()
@@ -147,6 +130,29 @@ bool WaylandDockHelper::isWindowOverlap()
147130 return m_isWindowOverlap;
148131}
149132
133+ void WaylandDockHelper::initWallpaperColorManager ()
134+ {
135+ m_wallpaperColorManager.reset (new WallpaperColorManager (this ));
136+
137+ connect (m_panel, &DockPanel::rootObjectChanged, this , [this ]() {
138+ m_wallpaperColorManager->watchScreen (dockScreenName ());
139+ });
140+
141+ connect (m_wallpaperColorManager.get (), &WallpaperColorManager::activeChanged, this , [this ]() {
142+ if (m_panel->rootObject () != nullptr ) {
143+ m_wallpaperColorManager->watchScreen (dockScreenName ());
144+ }
145+ });
146+
147+ connect (m_panel, &DockPanel::dockScreenChanged, this , [this ]() {
148+ m_wallpaperColorManager->watchScreen (dockScreenName ());
149+ });
150+
151+ if (m_panel->rootObject () != nullptr ) {
152+ m_wallpaperColorManager->watchScreen (dockScreenName ());
153+ }
154+ }
155+
150156void WaylandDockHelper::setDockColorTheme (const ColorTheme &theme)
151157{
152158 m_panel->setColorTheme (theme);
0 commit comments