diff --git a/Telegram/SourceFiles/platform/linux/linux_xdp_file_dialog.cpp b/Telegram/SourceFiles/platform/linux/linux_xdp_file_dialog.cpp index 7bbd7e218..96d5b2102 100644 --- a/Telegram/SourceFiles/platform/linux/linux_xdp_file_dialog.cpp +++ b/Telegram/SourceFiles/platform/linux/linux_xdp_file_dialog.cpp @@ -569,13 +569,6 @@ int XDPFileDialog::exec() { setAttribute(Qt::WA_ShowModal, true); setResult(0); - show(); - if (failedToOpen()) { - return result(); - } - - QPointer guard = this; - // HACK we have to avoid returning until we emit // that the dialog was accepted or rejected const auto context = Glib::MainContext::create(); @@ -593,6 +586,13 @@ int XDPFileDialog::exec() { loop->quit(); }, lifetime); + show(); + if (failedToOpen()) { + return result(); + } + + QPointer guard = this; + loop->run(); g_main_context_pop_thread_default(context->gobj());