diff --git a/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp b/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp index 7574bc733..7641579aa 100644 --- a/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp +++ b/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp @@ -12,7 +12,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include #include #include -#include #include using namespace KWayland::Client; @@ -23,7 +22,6 @@ namespace internal { struct WaylandIntegration::Private { std::unique_ptr connection; Registry registry; - std::unique_ptr xdgExporter; std::unique_ptr plasmaShell; }; @@ -42,21 +40,6 @@ WaylandIntegration::WaylandIntegration() &_private->registry, &Registry::destroy); - QObject::connect( - &_private->registry, - &Registry::exporterUnstableV2Announced, - [=](uint name, uint version) { - _private->xdgExporter = std::unique_ptr{ - _private->registry.createXdgExporter(name, version), - }; - - QObject::connect( - _private->connection.get(), - &ConnectionThread::connectionDied, - _private->xdgExporter.get(), - &XdgExporter::destroy); - }); - QObject::connect( &_private->registry, &Registry::plasmaShellAnnounced, @@ -81,26 +64,6 @@ WaylandIntegration *WaylandIntegration::Instance() { return &instance; } -QString WaylandIntegration::nativeHandle(QWindow *window) { - if (const auto exporter = _private->xdgExporter.get()) { - if (const auto surface = Surface::fromWindow(window)) { - if (const auto exported = exporter->exportTopLevel( - surface, - surface)) { - QEventLoop loop; - QObject::connect( - exported, - &XdgExported::done, - &loop, - &QEventLoop::quit); - loop.exec(); - return exported->handle(); - } - } - } - return {}; -} - bool WaylandIntegration::skipTaskbarSupported() { return _private->plasmaShell != nullptr; } diff --git a/Telegram/SourceFiles/platform/linux/linux_wayland_integration.h b/Telegram/SourceFiles/platform/linux/linux_wayland_integration.h index 342c7c3d6..b7b093ffe 100644 --- a/Telegram/SourceFiles/platform/linux/linux_wayland_integration.h +++ b/Telegram/SourceFiles/platform/linux/linux_wayland_integration.h @@ -14,7 +14,6 @@ class WaylandIntegration { public: [[nodiscard]] static WaylandIntegration *Instance(); - [[nodiscard]] QString nativeHandle(QWindow *window); [[nodiscard]] bool skipTaskbarSupported(); void skipTaskbar(QWindow *window, bool skip); diff --git a/Telegram/SourceFiles/platform/linux/linux_wayland_integration_dummy.cpp b/Telegram/SourceFiles/platform/linux/linux_wayland_integration_dummy.cpp index aecb73ede..b4151306d 100644 --- a/Telegram/SourceFiles/platform/linux/linux_wayland_integration_dummy.cpp +++ b/Telegram/SourceFiles/platform/linux/linux_wayland_integration_dummy.cpp @@ -26,10 +26,6 @@ WaylandIntegration *WaylandIntegration::Instance() { return &instance; } -QString WaylandIntegration::nativeHandle(QWindow *window) { - return {}; -} - bool WaylandIntegration::skipTaskbarSupported() { return false; } diff --git a/Telegram/SourceFiles/platform/linux/linux_xdp_file_dialog.cpp b/Telegram/SourceFiles/platform/linux/linux_xdp_file_dialog.cpp index f1d502a07..392a77503 100644 --- a/Telegram/SourceFiles/platform/linux/linux_xdp_file_dialog.cpp +++ b/Telegram/SourceFiles/platform/linux/linux_xdp_file_dialog.cpp @@ -10,7 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/platform_file_utilities.h" #include "base/platform/base_platform_info.h" #include "base/platform/linux/base_linux_glibmm_helper.h" -#include "platform/linux/linux_wayland_integration.h" +#include "base/platform/linux/base_linux_wayland_integration.h" #include "storage/localstorage.h" #include "base/random.h" @@ -20,7 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include #include -using Platform::internal::WaylandIntegration; +using base::Platform::WaylandIntegration; namespace Platform { namespace FileDialog { diff --git a/Telegram/SourceFiles/platform/linux/linux_xdp_open_with_dialog.cpp b/Telegram/SourceFiles/platform/linux/linux_xdp_open_with_dialog.cpp index 1e6fbbcb4..52640768d 100644 --- a/Telegram/SourceFiles/platform/linux/linux_xdp_open_with_dialog.cpp +++ b/Telegram/SourceFiles/platform/linux/linux_xdp_open_with_dialog.cpp @@ -9,7 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/platform/base_platform_info.h" #include "base/platform/linux/base_linux_glibmm_helper.h" -#include "platform/linux/linux_wayland_integration.h" +#include "base/platform/linux/base_linux_wayland_integration.h" #include "core/application.h" #include "window/window_controller.h" #include "base/random.h" @@ -21,7 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include #include -using Platform::internal::WaylandIntegration; +using base::Platform::WaylandIntegration; namespace Platform { namespace File { diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.cpp b/Telegram/SourceFiles/platform/linux/specific_linux.cpp index 3054ed361..54eed498a 100644 --- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/random.h" #include "base/platform/base_platform_info.h" +#include "base/platform/linux/base_linux_wayland_integration.h" #include "ui/platform/linux/ui_linux_wayland_integration.h" #include "platform/linux/linux_desktop_environment.h" #include "platform/linux/linux_wayland_integration.h" @@ -57,6 +58,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include using namespace Platform; +using BaseWaylandIntegration = base::Platform::WaylandIntegration; using UiWaylandIntegration = Ui::Platform::WaylandIntegration; using Platform::internal::WaylandIntegration; @@ -91,7 +93,7 @@ void PortalAutostart(bool start, bool silent) { } const auto window = activeWindow->widget()->windowHandle(); - if (const auto integration = WaylandIntegration::Instance()) { + if (const auto integration = BaseWaylandIntegration::Instance()) { if (const auto handle = integration->nativeHandle(window) ; !handle.isEmpty()) { result << "wayland:" << handle.toStdString(); diff --git a/Telegram/lib_base b/Telegram/lib_base index 0437cd92a..ec756891b 160000 --- a/Telegram/lib_base +++ b/Telegram/lib_base @@ -1 +1 @@ -Subproject commit 0437cd92adc5706c1fe3409a0459c2f70ced21f4 +Subproject commit ec756891b0d677ac648d1af926d74c7089118590