@@ -573,17 +573,21 @@ void LauncherModel::updateSurfaceListForApp(ApplicationInfoInterface* app)
573 QList<QPair<QString, QString> > surfaces;
573 QList<QPair<QString, QString> > surfaces;
574 for (int i = 0; i < app->surfaceList()->count(); ++i) {
574 for (int i = 0; i < app->surfaceList()->count(); ++i) {
575 MirSurfaceInterface* iface = app->surfaceList()->get(i);
575 MirSurfaceInterface* iface = app->surfaceList()->get(i);
576+ if (iface->type() == Mir::NormalType || iface->type() == Mir::DialogType) {
576− // Avoid duplicate connections, so let's just disconnect first to be sure
577+ // Avoid duplicate connections, so let's just disconnect first to be sure
577− disconnect(iface, &MirSurfaceInterface::nameChanged, this, &LauncherModel::updateSurfaceListForSurface);
578+ disconnect(iface, &MirSurfaceInterface::nameChanged, this, &LauncherModel::updateSurfaceListForSurface);
578− connect(iface, &MirSurfaceInterface::nameChanged, this, &LauncherModel::updateSurfaceListForSurface);
579+ connect(iface, &MirSurfaceInterface::nameChanged, this, &LauncherModel::updateSurfaceListForSurface);
579− QString name = iface->name();
580+ QString name = iface->name();
580− if (name.isEmpty()) {
581+ if (name.isEmpty()) {
581− name = app->name();
582+ name = app->name();
584+ surfaces.append({iface->persistentId(), name});
583− surfaces.append({iface->persistentId(), name});
587+ if (!surfaces.isEmpty()) {
585− item->setSurfaces(surfaces);
588+ item->setSurfaces(surfaces);
586− Q_EMIT dataChanged(index(idx), index(idx), {RoleSurfaceCount});
589+ Q_EMIT dataChanged(index(idx), index(idx), {RoleSurfaceCount});
589void LauncherModel::applicationRemoved(const QModelIndex &parent, int row)
593void LauncherModel::applicationRemoved(const QModelIndex &parent, int row)