fix: 修复时尚模式下从任务栏打开图标显示重复的问题

原因:在判断图标是否显示在任务栏的时候,没有判断当前应用是否已经驻留在任务栏
修改:如果该应用如果已经驻留在任务栏,就判断其为在任务栏显示

Log: 修复时尚模式任务栏图标重复显示的问题
Influence: 进入任务栏时尚模式,在任务栏上打开一个已经驻留的应用,观察该应用图标是否显示重复
Bug: https://pms.uniontech.com/bug-view-157249.html
Change-Id: I2d17301e75d017517daa48a930a3a6906650608e
This commit is contained in:
donghualin 2022-10-27 03:28:58 +00:00
parent a095e48203
commit 300c412c5f

View File

@ -517,13 +517,17 @@ bool Entry::detachWindow(WindowInfoBase *info)
bool Entry::isShowOnDock() const
{
// 当前应用显示图标的条件是
// 如果该图标已经固定在任务栏上,则始终显示
if (getIsDocked())
return true;
// 1.时尚模式下,如果开启了显示最近使用,则不管是否有子窗口,都在任务栏上显示
// 如果没有开启显示最近使用,则只显示有子窗口的
if (static_cast<DisplayMode>(dock->getDisplayMode()) == DisplayMode::Fashion)
return (dock->showRecent() || m_exportWindowInfos.size() > 0);
// 2.高效模式下,只有该应用有打开窗口才显示
return (getIsDocked() || m_exportWindowInfos.size() > 0);
return m_exportWindowInfos.size() > 0;
}
bool Entry::attachWindow(WindowInfoBase *info)
@ -554,6 +558,7 @@ bool Entry::attachWindow(WindowInfoBase *info)
// 新打开的窗口始终显示到最后
Q_EMIT dock->entryAdded(QDBusObjectPath(path()), -1);
}
return true;
}