diff --git a/applets/kicker/plugin/runnermatchesmodel.cpp b/applets/kicker/plugin/runnermatchesmodel.cpp --- a/applets/kicker/plugin/runnermatchesmodel.cpp +++ b/applets/kicker/plugin/runnermatchesmodel.cpp @@ -109,8 +109,18 @@ return actionList; } - const KService::Ptr service = KService::serviceByStorageId(match.data().toString()); + const QUrl dataUrl(match.data().toUrl()); + if (dataUrl.scheme() != QLatin1String("applications")) { + return actionList; + } + + // Don't offer jump list actions on a jump list action. + const QString actionName = QUrlQuery(dataUrl).queryItemValue(QStringLiteral("action")); + if (!actionName.isEmpty()) { + return actionList; + } + const KService::Ptr service = KService::serviceByStorageId(dataUrl.path()); if (service) { if (!actionList.isEmpty()) { actionList << Kicker::createSeparatorActionItem();