diff options
| author | Andrey Butirsky <[email protected]> | 2021-08-20 12:31:36 +0300 |
|---|---|---|
| committer | Andrey Butirsky <[email protected]> | 2021-08-25 14:45:55 +0000 |
| commit | 5e84fffd6ed97a173d7250e7563998ea5dc395a0 (patch) | |
| tree | 1d492707a72c48a1e729feef06f1fd8ee52fc2ba /src/dbusinterface.cpp | |
| parent | e76bf5cb18ca46a0adc84ead3801726814cf6fd3 (diff) | |
DBus activation with filemanager iface
In Dolphin on wayland currently, if you right clicks a file and create a
zip file from it, Dolphin makes a new window.
What we want to happen is Dolphin to focus the window we have with the
file selected.
This patches Dolphin's dbusinterface.cpp to call
KWindowSystem::setCurrentXdgActivationToken()
with the startupID
Diffstat (limited to 'src/dbusinterface.cpp')
| -rw-r--r-- | src/dbusinterface.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/dbusinterface.cpp b/src/dbusinterface.cpp index 2b674b968..e4f647f73 100644 --- a/src/dbusinterface.cpp +++ b/src/dbusinterface.cpp @@ -9,6 +9,7 @@ #include "dolphin_generalsettings.h" #include <KPropertiesDialog> +#include <KWindowSystem> #include <QApplication> #include <QDBusConnection> @@ -28,11 +29,11 @@ DBusInterface::DBusInterface() : void DBusInterface::ShowFolders(const QStringList& uriList, const QString& startUpId) { - Q_UNUSED(startUpId) const QList<QUrl> urls = Dolphin::validateUris(uriList); if (urls.isEmpty()) { return; } + KWindowSystem::setCurrentXdgActivationToken(startUpId); const auto serviceName = isDaemon() ? QString() : QStringLiteral("org.kde.dolphin-%1").arg(QCoreApplication::applicationPid()); if(!Dolphin::attachToExistingInstance(urls, false, GeneralSettings::splitView(), serviceName)) { Dolphin::openNewWindow(urls); @@ -41,11 +42,11 @@ void DBusInterface::ShowFolders(const QStringList& uriList, const QString& start void DBusInterface::ShowItems(const QStringList& uriList, const QString& startUpId) { - Q_UNUSED(startUpId) const QList<QUrl> urls = Dolphin::validateUris(uriList); if (urls.isEmpty()) { return; } + KWindowSystem::setCurrentXdgActivationToken(startUpId); const auto serviceName = isDaemon() ? QString() : QStringLiteral("org.kde.dolphin-%1").arg(QCoreApplication::applicationPid()); if(!Dolphin::attachToExistingInstance(urls, true, GeneralSettings::splitView(), serviceName)) { Dolphin::openNewWindow(urls, nullptr, Dolphin::OpenNewWindowFlag::Select); @@ -54,9 +55,9 @@ void DBusInterface::ShowItems(const QStringList& uriList, const QString& startUp void DBusInterface::ShowItemProperties(const QStringList& uriList, const QString& startUpId) { - Q_UNUSED(startUpId) const QList<QUrl> urls = Dolphin::validateUris(uriList); if (!urls.isEmpty()) { + KWindowSystem::setCurrentXdgActivationToken(startUpId); KPropertiesDialog::showDialog(urls); } } |
