Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kf6-krunner for openSUSE:Factory checked in at 2025-08-09 19:58:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kf6-krunner (Old) and /work/SRC/openSUSE:Factory/.kf6-krunner.new.1085 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kf6-krunner" Sat Aug 9 19:58:16 2025 rev:18 rq:1298561 version:6.17.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kf6-krunner/kf6-krunner.changes 2025-07-14 10:53:37.041400001 +0200 +++ /work/SRC/openSUSE:Factory/.kf6-krunner.new.1085/kf6-krunner.changes 2025-08-09 20:03:44.160038924 +0200 @@ -1,0 +2,15 @@ +Mon Aug 4 06:57:34 UTC 2025 - Christophe Marin <christo...@krop.fr> + +- Update to 6.17.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/6/6.17.0 +- Changes since 6.16.0: + * Update dependency version to 6.17.0 + * Add support for XDG Activation in DBusRunner + * Save LaunchCounts immediately on launch if there were any matches (kde#500972) + * Bump kf ecm_set_disabled_deprecation_versions + * It compiles fine without qt 6.10 deprecated methods + * Update version to 6.17.0 + +------------------------------------------------------------------- Old: ---- krunner-6.16.0.tar.xz krunner-6.16.0.tar.xz.sig New: ---- krunner-6.17.0.tar.xz krunner-6.17.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kf6-krunner.spec ++++++ --- /var/tmp/diff_new_pack.FpmyXn/_old 2025-08-09 20:03:44.912070542 +0200 +++ /var/tmp/diff_new_pack.FpmyXn/_new 2025-08-09 20:03:44.912070542 +0200 @@ -1,7 +1,7 @@ # # spec file for package kf6-krunner # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,11 +19,11 @@ %define qt6_version 6.8.0 %define rname krunner -# Full KF6 version (e.g. 6.16.0) +# Full KF6 version (e.g. 6.17.0) %{!?_kf6_version: %global _kf6_version %{version}} %bcond_without released Name: kf6-krunner -Version: 6.16.0 +Version: 6.17.0 Release: 0 Summary: KDE Framework for providing different actions given a string query License: LGPL-2.1-or-later @@ -40,6 +40,7 @@ BuildRequires: cmake(KF6I18n) >= %{_kf6_version} BuildRequires: cmake(KF6ItemModels) >= %{_kf6_version} BuildRequires: cmake(KF6ThreadWeaver) >= %{_kf6_version} +BuildRequires: cmake(KF6WindowSystem) >= %{_kf6_version} BuildRequires: cmake(Qt6Gui) >= %{qt6_version} BuildRequires: cmake(Qt6ToolsTools) >= %{qt6_version} ++++++ krunner-6.16.0.tar.xz -> krunner-6.17.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunner-6.16.0/.kde-ci.yml new/krunner-6.17.0/.kde-ci.yml --- old/krunner-6.16.0/.kde-ci.yml 2025-07-04 17:16:54.000000000 +0200 +++ new/krunner-6.17.0/.kde-ci.yml 2025-08-01 12:38:54.000000000 +0200 @@ -10,6 +10,7 @@ 'frameworks/threadweaver': '@same' 'frameworks/ki18n': '@same' 'frameworks/kitemmodels': '@same' + 'frameworks/kwindowsystem': '@same' Options: test-before-installing: True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunner-6.16.0/CMakeLists.txt new/krunner-6.17.0/CMakeLists.txt --- old/krunner-6.16.0/CMakeLists.txt 2025-07-04 17:16:54.000000000 +0200 +++ new/krunner-6.17.0/CMakeLists.txt 2025-08-01 12:38:54.000000000 +0200 @@ -3,13 +3,13 @@ cmake_minimum_required(VERSION 3.16) -set(KF_VERSION "6.16.0") # handled by release scripts -set(KF_DEP_VERSION "6.16.0") # handled by release scripts +set(KF_VERSION "6.17.0") # handled by release scripts +set(KF_DEP_VERSION "6.17.0") # handled by release scripts project(KRunner VERSION ${KF_VERSION}) # ECM setup include(FeatureSummary) -find_package(ECM 6.16.0 NO_MODULE) +find_package(ECM 6.17.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) @@ -46,14 +46,15 @@ find_package(Qt6 ${REQUIRED_QT_VERSION} NO_MODULE REQUIRED Gui) ecm_set_disabled_deprecation_versions( - QT 6.9.0 - KF 6.14.0 + QT 6.10.0 + KF 6.16.0 ) find_package(KF6Config ${KF_DEP_VERSION} REQUIRED) find_package(KF6CoreAddons ${KF_DEP_VERSION} REQUIRED) find_package(KF6I18n ${KF_DEP_VERSION} REQUIRED) find_package(KF6ItemModels ${KF_DEP_VERSION}) +find_package(KF6WindowSystem ${KF_DEP_VERSION} REQUIRED) # Subdirectories add_subdirectory(src) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunner-6.16.0/autotests/plugins/testremoterunner.cpp new/krunner-6.17.0/autotests/plugins/testremoterunner.cpp --- old/krunner-6.16.0/autotests/plugins/testremoterunner.cpp 2025-07-04 17:16:54.000000000 +0200 +++ new/krunner-6.17.0/autotests/plugins/testremoterunner.cpp 2025-08-01 12:38:54.000000000 +0200 @@ -95,6 +95,11 @@ return QList<KRunner::Action>{action, action2}; } +void TestRemoteRunner::SetActivationToken(const QString &token) +{ + std::cout << "Activation Token:" << qPrintable(token) << std::endl; +} + void TestRemoteRunner::Run(const QString &id, const QString &actionId) { std::cout << "Running:" << qPrintable(id) << ":" << qPrintable(actionId) << std::endl; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunner-6.16.0/autotests/plugins/testremoterunner.h new/krunner-6.17.0/autotests/plugins/testremoterunner.h --- old/krunner-6.16.0/autotests/plugins/testremoterunner.h 2025-07-04 17:16:54.000000000 +0200 +++ new/krunner-6.17.0/autotests/plugins/testremoterunner.h 2025-08-01 12:38:54.000000000 +0200 @@ -19,6 +19,7 @@ public Q_SLOTS: KRunner::Actions Actions(); RemoteMatches Match(const QString &searchTerm); + void SetActivationToken(const QString &token); void Run(const QString &id, const QString &actionId); void Teardown(); QVariantMap Config(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunner-6.16.0/autotests/runnermanagerhistorytest.cpp new/krunner-6.17.0/autotests/runnermanagerhistorytest.cpp --- old/krunner-6.16.0/autotests/runnermanagerhistorytest.cpp 2025-07-04 17:16:54.000000000 +0200 +++ new/krunner-6.17.0/autotests/runnermanagerhistorytest.cpp 2025-08-01 12:38:54.000000000 +0200 @@ -14,10 +14,6 @@ #include <QStandardPaths> #include <QTest> #include <memory> -namespace KRunner -{ -extern int __changeCountBeforeSaving; -} using namespace KRunner; class RunnerManagerHistoryTest : public QObject { @@ -25,7 +21,6 @@ public: RunnerManagerHistoryTest() { - __changeCountBeforeSaving = 1; QStandardPaths::setTestModeEnabled(true); stateConfigFile = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QDir::separator() + "krunnerstaterc"; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunner-6.16.0/autotests/runnermanagertest.cpp new/krunner-6.17.0/autotests/runnermanagertest.cpp --- old/krunner-6.16.0/autotests/runnermanagertest.cpp 2025-07-04 17:16:54.000000000 +0200 +++ new/krunner-6.17.0/autotests/runnermanagertest.cpp 2025-08-01 12:38:54.000000000 +0200 @@ -20,10 +20,6 @@ Q_DECLARE_METATYPE(QList<KRunner::QueryMatch>) using namespace KRunner; -namespace KRunner -{ -extern int __changeCountBeforeSaving; -} class RunnerManagerTest : public AbstractRunnerTest { @@ -31,7 +27,6 @@ private Q_SLOTS: void initTestCase() { - __changeCountBeforeSaving = 1; startDBusRunnerProcess({QStringLiteral("net.krunnertests.dave")}); qputenv("XDG_DATA_DIRS", QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation).toLocal8Bit()); QCoreApplication::setLibraryPaths(QStringList()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunner-6.16.0/src/CMakeLists.txt new/krunner-6.17.0/src/CMakeLists.txt --- old/krunner-6.16.0/src/CMakeLists.txt 2025-07-04 17:16:54.000000000 +0200 +++ new/krunner-6.17.0/src/CMakeLists.txt 2025-08-01 12:38:54.000000000 +0200 @@ -68,6 +68,7 @@ KF6::ConfigCore KF6::I18n KF6::ItemModels + KF6::WindowSystem ) ecm_generate_headers(KRunner_CamelCase_HEADERS HEADER_NAMES diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunner-6.16.0/src/data/org.kde.krunner1.xml new/krunner-6.17.0/src/data/org.kde.krunner1.xml --- old/krunner-6.16.0/src/data/org.kde.krunner1.xml 2025-07-04 17:16:54.000000000 +0200 +++ new/krunner-6.17.0/src/data/org.kde.krunner1.xml 2025-08-01 12:38:54.000000000 +0200 @@ -49,6 +49,15 @@ </method> <!-- + Called with an XDG Activation Token. + This is called just before Run in order for the DBusRunner to receive the XDG Activation Token + necessary to pass focus to another window when e.g. launching an application or opening a document. + --> + <method name="SetActivationToken"> + <arg name="token" type="s" direction="in"/> + </method> + + <!-- Execute an action --> <method name="Run"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunner-6.16.0/src/dbusrunner.cpp new/krunner-6.17.0/src/dbusrunner.cpp --- old/krunner-6.16.0/src/dbusrunner.cpp 2025-07-04 17:16:54.000000000 +0200 +++ new/krunner-6.17.0/src/dbusrunner.cpp 2025-08-01 12:38:54.000000000 +0200 @@ -13,9 +13,13 @@ #include <QDBusMessage> #include <QDBusMetaType> #include <QDBusPendingReply> +#include <QGuiApplication> #include <QIcon> #include <set> +#include <KWaylandExtras> +#include <KWindowSystem> + #include "dbusutils_p.h" #include "krunner_debug.h" @@ -278,9 +282,33 @@ actionId = match.selectedAction().id(); } - auto runMethod = QDBusMessage::createMethodCall(service, m_path, m_ifaceName, QStringLiteral("Run")); - runMethod.setArguments(QList<QVariant>({matchId, actionId})); - QDBusConnection::sessionBus().call(runMethod, QDBus::NoBlock); + auto run = [this, service, matchId, actionId] { + auto runMethod = QDBusMessage::createMethodCall(service, m_path, m_ifaceName, QStringLiteral("Run")); + runMethod.setArguments(QList<QVariant>({matchId, actionId})); + QDBusConnection::sessionBus().call(runMethod, QDBus::NoBlock); + }; + + if (KWindowSystem::isPlatformWayland() && qGuiApp->focusWindow()) { + const int launchedSerial = KWaylandExtras::lastInputSerial(qGuiApp->focusWindow()); + connect( + KWaylandExtras::self(), + &KWaylandExtras::xdgActivationTokenArrived, + this, + [this, launchedSerial, service, matchId, actionId, run](int tokenSerial, const QString &token) { + Q_UNUSED(tokenSerial); + if (!token.isEmpty()) { + auto activationTokenMethod = QDBusMessage::createMethodCall(service, m_path, m_ifaceName, QStringLiteral("SetActivationToken")); + activationTokenMethod.setArguments(QList<QVariant>{token}); + QDBusConnection::sessionBus().call(activationTokenMethod, QDBus::NoBlock); + } + + run(); + }, + Qt::SingleShotConnection); + KWaylandExtras::requestXdgActivationToken(qGuiApp->focusWindow(), launchedSerial, {}); + } else { + run(); + } } QImage DBusRunner::decodeImage(const RemoteImage &remoteImage) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunner-6.16.0/src/runnercontext.cpp new/krunner-6.17.0/src/runnercontext.cpp --- old/krunner-6.16.0/src/runnercontext.cpp 2025-07-04 17:16:54.000000000 +0200 +++ new/krunner-6.17.0/src/runnercontext.cpp 2025-08-01 12:38:54.000000000 +0200 @@ -25,7 +25,6 @@ namespace KRunner { -KRUNNER_EXPORT int __changeCountBeforeSaving = 5; // For tests class RunnerContextPrivate : public QSharedData { public: @@ -274,7 +273,7 @@ void RunnerContext::save(KConfigGroup &config) { - if (d->changedLaunchCounts < __changeCountBeforeSaving) { + if (d->changedLaunchCounts == 0) { return; } d->changedLaunchCounts = 0;