diff --git a/CMakeLists.txt b/CMakeLists.txt index 9859535812..912599a707 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -275,6 +275,7 @@ if (KWIN_BUILD_X11) PURPOSE "Needed for running kwin_wayland" ) set(HAVE_XWAYLAND_LISTENFD ${Xwayland_HAVE_LISTENFD}) + set(HAVE_XWAYLAND_ENABLE_EI_PORTAL ${Xwayland_HAVE_ENABLE_EI_PORTAL}) set(HAVE_GLX ${epoxy_HAS_GLX}) get_target_property(QT_DISABLED_FEATURES Qt6::Gui QT_DISABLED_PUBLIC_FEATURES) diff --git a/cmake/modules/FindXwayland.cmake b/cmake/modules/FindXwayland.cmake index 1c96518069..1e28dc64e7 100644 --- a/cmake/modules/FindXwayland.cmake +++ b/cmake/modules/FindXwayland.cmake @@ -12,6 +12,8 @@ # The version of Xwayland # ``Xwayland_HAVE_LISTENFD`` # True if (the requested version of) Xwayland has -listenfd option +# ``Xwayland_HAVE_ENABLE_EI_PORTAL`` +# True if (the requested version of) Xwayland has -enable-ei-portal option #============================================================================= # SPDX-FileCopyrightText: 2016 Martin Gräßlin @@ -25,6 +27,7 @@ pkg_check_modules(PKG_xwayland QUIET xwayland) set(Xwayland_VERSION ${PKG_xwayland_VERSION}) pkg_get_variable(Xwayland_HAVE_LISTENFD xwayland have_listenfd) +pkg_get_variable(Xwayland_HAVE_ENABLE_EI_PORTAL xwayland have_enable_ei_portal) find_program(Xwayland_EXECUTABLE NAMES Xwayland) find_package_handle_standard_args(Xwayland diff --git a/src/config-kwin.h.cmake b/src/config-kwin.h.cmake index a4ad8a646c..a6a930511c 100644 --- a/src/config-kwin.h.cmake +++ b/src/config-kwin.h.cmake @@ -28,5 +28,6 @@ constexpr QLatin1String KWIN_KILLER_BIN("${KWIN_KILLER_BIN}"); constexpr QLatin1String BREEZE_KDECORATION_PLUGIN_ID("${BREEZE_KDECORATION_PLUGIN_ID}"); #endif #cmakedefine01 HAVE_XWAYLAND_LISTENFD +#cmakedefine01 HAVE_XWAYLAND_ENABLE_EI_PORTAL #cmakedefine01 HAVE_GLX #cmakedefine01 HAVE_DL_LIBRARY diff --git a/src/xwayland/xwaylandlauncher.cpp b/src/xwayland/xwaylandlauncher.cpp index 167d669a8c..e24cd5fe4e 100644 --- a/src/xwayland/xwaylandlauncher.cpp +++ b/src/xwayland/xwaylandlauncher.cpp @@ -186,6 +186,9 @@ bool XwaylandLauncher::start() arguments << QStringLiteral("-displayfd") << QString::number(pipeFds[1]); arguments << QStringLiteral("-rootless"); arguments << QStringLiteral("-wm") << QString::number(fd); +#if HAVE_XWAYLAND_ENABLE_EI_PORTAL + arguments << QStringLiteral("-enable-ei-portal"); +#endif m_xwaylandProcess = new QProcess(this); m_xwaylandProcess->setProcessChannelMode(QProcess::ForwardedErrorChannel);