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