fix: there is an empty AppItem in dock

https://github.com/linuxdeepin/internal-discussion/issues/653

Change-Id: If2da95238240c2726b9395267ba0bfebb7f6ca28
This commit is contained in:
listenerri 2018-12-25 14:52:32 +08:00
parent d7a0df40ba
commit c10a6e9eb2
Notes: gerrit 2018-12-25 16:36:32 +08:00
Verified+1: <jenkins@deepin.com>
Code-Review+2: listenerri <listenerri@gmail.com>
Submitted-by: listenerri <listenerri@gmail.com>
Submitted-at: Tue, 25 Dec 2018 16:36:32 +0800
Reviewed-on: https://cr.deepin.io/40864
Project: dde/dde-dock
Branch: refs/heads/master
3 changed files with 11 additions and 5 deletions

View File

@ -288,12 +288,12 @@ void DockItemController::appItemRemoved(const QString &appId)
continue;
AppItem *app = static_cast<AppItem *>(m_itemList[i].data());
if (!app || app->appId() != appId)
if (!app) {
continue;
appItemRemoved(app);
break;
}
if (!app->isValid() || app->appId() == appId) {
appItemRemoved(app);
}
}
}

View File

@ -120,6 +120,11 @@ const QString AppItem::appId() const
return m_id;
}
const bool AppItem::isValid() const
{
return m_itemEntryInter->isValid() && !m_itemEntryInter->id().isEmpty();
}
// Update _NET_WM_ICON_GEOMETRY property for windows that every item
// that manages, so that WM can do proper animations for specific
// window behaviors like minimization.

View File

@ -46,6 +46,7 @@ public:
~AppItem();
const QString appId() const;
const bool isValid() const;
void updateWindowIconGeometries();
static void setIconBaseSize(const int size);
static int iconBaseSize();