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 7b3bfbeaa1..22d3b0b02c 100644 --- a/Telegram/SourceFiles/platform/linux/linux_xdp_open_with_dialog.cpp +++ b/Telegram/SourceFiles/platform/linux/linux_xdp_open_with_dialog.cpp @@ -14,12 +14,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/window_controller.h" #include "base/random.h" -#include - #include #include #include -#include namespace Platform { namespace File { @@ -90,12 +87,7 @@ bool ShowXDPOpenWithDialog(const QString &filepath) { + '/' + handleToken; - const auto context = Glib::MainContext::create(); - const auto loop = Glib::MainLoop::create(context); - g_main_context_push_thread_default(context->gobj()); - const auto contextGuard = gsl::finally([&] { - g_main_context_pop_thread_default(context->gobj()); - }); + const auto loop = Glib::MainLoop::create(); const auto signalId = connection->signal_subscribe( [&]( @@ -148,10 +140,11 @@ bool ShowXDPOpenWithDialog(const QString &filepath) { std::string(base::Platform::XDP::kService)); if (signalId != 0) { - QWindow window; - QGuiApplicationPrivate::showModalWindow(&window); + QWidget window; + window.setAttribute(Qt::WA_DontShowOnScreen); + window.setWindowModality(Qt::ApplicationModal); + window.show(); loop->run(); - QGuiApplicationPrivate::hideModalWindow(&window); } return true; diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.cpp b/Telegram/SourceFiles/platform/linux/specific_linux.cpp index b72a3d0e5e..d4037dd050 100644 --- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp @@ -36,9 +36,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include #include #include -#include - -#include #ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION #include @@ -113,12 +110,7 @@ void PortalAutostart(bool start, bool silent) { + '/' + handleToken; - const auto context = Glib::MainContext::create(); - const auto loop = Glib::MainLoop::create(context); - g_main_context_push_thread_default(context->gobj()); - const auto contextGuard = gsl::finally([&] { - g_main_context_pop_thread_default(context->gobj()); - }); + const auto loop = Glib::MainLoop::create(); const auto signalId = connection->signal_subscribe( [&]( @@ -168,10 +160,11 @@ void PortalAutostart(bool start, bool silent) { std::string(base::Platform::XDP::kService)); if (signalId != 0) { - QWindow window; - QGuiApplicationPrivate::showModalWindow(&window); + QWidget window; + window.setAttribute(Qt::WA_DontShowOnScreen); + window.setWindowModality(Qt::ApplicationModal); + window.show(); loop->run(); - QGuiApplicationPrivate::hideModalWindow(&window); } } catch (const Glib::Error &e) { if (!silent) {