Remove AbstractClient plumbing casts in DbusInterface

This commit is contained in:
Vlad Zahorodnii 2022-04-18 11:24:28 +03:00
parent 348e20e20f
commit a429739f98

View file

@ -235,16 +235,18 @@ QVariantMap DBusInterface::queryWindowInfo()
setDelayedReply(true);
kwinApp()->platform()->startInteractiveWindowSelection(
[this](AbstractClient *t) {
if (auto c = static_cast<AbstractClient *>(t->isClient() ? t : nullptr)) {
QDBusConnection::sessionBus().send(m_replyQueryWindowInfo.createReply(clientToVariantMap(c)));
} else if (qobject_cast<Unmanaged *>(t)) {
QDBusConnection::sessionBus().send(m_replyQueryWindowInfo.createErrorReply(
QStringLiteral("org.kde.KWin.Error.InvalidWindow"),
QStringLiteral("Tried to query information about an unmanaged window")));
} else {
if (!t) {
QDBusConnection::sessionBus().send(m_replyQueryWindowInfo.createErrorReply(
QStringLiteral("org.kde.KWin.Error.UserCancel"),
QStringLiteral("User cancelled the query")));
return;
}
if (t->isClient()) {
QDBusConnection::sessionBus().send(m_replyQueryWindowInfo.createReply(clientToVariantMap(t)));
} else {
QDBusConnection::sessionBus().send(m_replyQueryWindowInfo.createErrorReply(
QStringLiteral("org.kde.KWin.Error.InvalidWindow"),
QStringLiteral("Tried to query information about an unmanaged window")));
}
});
return QVariantMap{};