diff --git a/krunner/CMakeLists.txt b/krunner/CMakeLists.txt --- a/krunner/CMakeLists.txt +++ b/krunner/CMakeLists.txt @@ -32,6 +32,7 @@ configure_file(krunner.desktop.cmake ${CMAKE_CURRENT_BINARY_DIR}/krunner.desktop @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/krunner.desktop DESTINATION ${DATA_INSTALL_DIR}/kglobalaccel) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/krunner.desktop DESTINATION ${KDE_INSTALL_APPDIR}) set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KRunnerAppDBusInterface") configure_package_config_file(KRunnerAppDBusInterfaceConfig.cmake.in diff --git a/krunner/krunner.desktop.cmake b/krunner/krunner.desktop.cmake --- a/krunner/krunner.desktop.cmake +++ b/krunner/krunner.desktop.cmake @@ -54,6 +54,7 @@ X-KDE-Shortcuts=Alt+Space,Alt+F2,Search Actions=RunClipboard X-KDE-Wayland-Interfaces=org_kde_plasma_window_management +NoDisplay=true [Desktop Action RunClipboard] Exec=krunner -c diff --git a/krunner/view.cpp b/krunner/view.cpp --- a/krunner/view.cpp +++ b/krunner/view.cpp @@ -236,10 +236,10 @@ QDBusPendingCall async = strutManager.asyncCall("availableScreenRect", shownOnScreen->name()); QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(async, this); - QObject::connect(watcher, &QDBusPendingCallWatcher::finished, this, [=]() { + QObject::connect(watcher, &QDBusPendingCallWatcher::finished, this, [this, watcher, shownOnScreen]() { + watcher->deleteLater(); QDBusPendingReply reply = *watcher; - setScreen(shownOnScreen); const QRect r = reply.isValid() ? reply.value() : shownOnScreen->availableGeometry(); if (m_floating && !m_customPos.isNull()) { @@ -268,14 +268,13 @@ KWindowSystem::setOnDesktop(winId(), KWindowSystem::currentDesktop()); KWindowSystem::setType(winId(), NET::Normal); //Turn the sliding effect off - KWindowEffects::slideWindow(winId(), KWindowEffects::NoEdge, 0); + setLocation(Plasma::Types::Floating); } else { KWindowSystem::setOnAllDesktops(winId(), true); - KWindowEffects::slideWindow(winId(), KWindowEffects::TopEdge, 0); + setLocation(Plasma::Types::TopEdge); } KWindowSystem::forceActiveWindow(winId()); - watcher->deleteLater(); }); }