diff options
Diffstat (limited to 'net-im/telegram-desktop/files/tdesktop-5.0.1-qt6-no-wayland.patch')
-rw-r--r-- | net-im/telegram-desktop/files/tdesktop-5.0.1-qt6-no-wayland.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/net-im/telegram-desktop/files/tdesktop-5.0.1-qt6-no-wayland.patch b/net-im/telegram-desktop/files/tdesktop-5.0.1-qt6-no-wayland.patch new file mode 100644 index 000000000000..10a8743a0d31 --- /dev/null +++ b/net-im/telegram-desktop/files/tdesktop-5.0.1-qt6-no-wayland.patch @@ -0,0 +1,95 @@ +Allow disabling wayland integration for Qt6 builds + +Upstream has removed the required toggle for wayland integration, and instead +is forcing it when the program is being built with Qt6 version 6.5.0 or higher. + +Currently this is simple to work around, but its future feasibility remains to +be seen, depending on what upstream thinks about this. + +https://bugs.gentoo.org/928451 +https://github.com/desktop-app/cmake_helpers/commit/a428df5440e76a726abc30924766ac7da0cb381c + +--- tdesktop-5.0.1-full.orig/Telegram/lib_base/base/platform/linux/base_linux_xdg_activation_token.cpp ++++ tdesktop-5.0.1-full/Telegram/lib_base/base/platform/linux/base_linux_xdg_activation_token.cpp +@@ -15,7 +15,7 @@ + namespace base::Platform { + + void RunWithXdgActivationToken(Fn<void(QString)> callback) { +-#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) ++#if !defined DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION && QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) + const auto window = QGuiApplication::focusWindow(); + if (!window) { + callback({}); +--- tdesktop-5.0.1-full.orig/Telegram/lib_ui/ui/platform/linux/ui_utility_linux.cpp ++++ tdesktop-5.0.1-full/Telegram/lib_ui/ui/platform/linux/ui_utility_linux.cpp +@@ -413,7 +413,7 @@ + } + #endif // !DESKTOP_APP_DISABLE_X11_INTEGRATION + +-#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) ++#if !defined DESKTOP_APP_DISABLE_X11_INTEGRATION && QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) + void ShowWaylandWindowMenu(not_null<QWidget*> widget, const QPoint &point) { + static const auto wl_proxy_marshal_array = [] { + void (*result)( +@@ -533,7 +533,7 @@ + } + + bool WindowMarginsSupported() { +-#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) ++#if !defined DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION && QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) + static const auto WaylandResult = [] { + using namespace QNativeInterface::Private; + QWindow window; +@@ -560,7 +560,7 @@ + } + + void SetWindowMargins(not_null<QWidget*> widget, const QMargins &margins) { +-#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) ++#if !defined DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION && QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) + using namespace QNativeInterface::Private; + const auto window = not_null(widget->windowHandle()); + const auto platformWindow = not_null(window->handle()); +@@ -582,7 +582,7 @@ + } + + void UnsetWindowMargins(not_null<QWidget*> widget) { +-#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) ++#if !defined DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION && QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) + using namespace QNativeInterface::Private; + if (const auto native = not_null(widget->windowHandle()) + ->nativeInterface<QWaylandWindow>()) { +@@ -600,7 +600,7 @@ + } + + void ShowWindowMenu(not_null<QWidget*> widget, const QPoint &point) { +-#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) ++#if !defined DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION && QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) + if (::Platform::IsWayland()) { + ShowWaylandWindowMenu(widget, point); + return; +--- tdesktop-5.0.1-full.orig/cmake/options.cmake ++++ tdesktop-5.0.1-full/cmake/options.cmake +@@ -23,6 +23,13 @@ + ) + endif() + ++if (DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION) ++ target_compile_definitions(common_options ++ INTERFACE ++ DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION ++ ) ++endif() ++ + if (WIN32) + include(cmake/options_win.cmake) + elseif (APPLE) +--- tdesktop-5.0.1-full.orig/cmake/variables.cmake ++++ tdesktop-5.0.1-full/cmake/variables.cmake +@@ -21,6 +21,7 @@ + + option(DESKTOP_APP_LOTTIE_USE_CACHE "Use caching in lottie animations." ON) + cmake_dependent_option(DESKTOP_APP_DISABLE_X11_INTEGRATION "Disable all code for X11 integration." OFF LINUX ON) ++cmake_dependent_option(DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION "Disable all code for Wayland integration." OFF LINUX ON) + cmake_dependent_option(DESKTOP_APP_USE_ALLOCATION_TRACER "Use simple allocation tracer." OFF LINUX OFF) + cmake_dependent_option(DESKTOP_APP_USE_PACKAGED_LAZY "Bundle recommended Qt plugins for self-contained packages." OFF LINUX OFF) + option(DESKTOP_APP_USE_PACKAGED_FONTS "Use preinstalled fonts instead of bundled patched ones." OFF) |