1
0
telegram-desktop/0002-fix-directory-open-via-portals.patch

52 lines
2.1 KiB
Diff
Raw Normal View History

From 7bc86cc9af28ba3d04a5cb69f6f7c16bfe7f8719 Mon Sep 17 00:00:00 2001
From: Ilya Fedin <fedin-ilja2010@ya.ru>
Date: Tue, 21 Apr 2020 23:05:17 +0400
Subject: [PATCH] Fix directory opening with portal and use them by default
with KDE
---
.../SourceFiles/platform/linux/file_utilities_linux.cpp | 6 +++---
Telegram/SourceFiles/platform/linux/specific_linux.cpp | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp b/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp
index 47dd56a411..88f8a69a91 100644
--- a/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp
+++ b/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp
@@ -83,11 +83,11 @@ constexpr auto kPreviewHeight = 512;
using Type = ::FileDialog::internal::Type;
#ifndef TDESKTOP_DISABLE_GTK_INTEGRATION
-bool NativeSupported() {
+bool NativeSupported(Type type = Type::ReadFile) {
#ifndef TDESKTOP_FORCE_GTK_FILE_DIALOG
return false;
#endif // TDESKTOP_FORCE_GTK_FILE_DIALOG
- return !Platform::UseXDGDesktopPortal()
+ return (!Platform::UseXDGDesktopPortal() || type == Type::ReadFolder)
&& Platform::internal::GdkHelperLoaded()
&& (Libs::gtk_widget_hide_on_delete != nullptr)
&& (Libs::gtk_clipboard_store != nullptr)
@@ -192,7 +192,7 @@ bool Get(
parent = parent->window();
}
#ifndef TDESKTOP_DISABLE_GTK_INTEGRATION
- if (NativeSupported()) {
+ if (NativeSupported(type)) {
return GetNative(
parent,
files,
diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.cpp b/Telegram/SourceFiles/platform/linux/specific_linux.cpp
index 0bb3963420..c12e5a0780 100644
--- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp
+++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp
@@ -266,7 +266,7 @@ bool UseXDGDesktopPortal() {
const auto envVar = qEnvironmentVariableIsSet("TDESKTOP_USE_PORTAL");
const auto portalPresent = IsXDGDesktopPortalPresent();
- return envVar && portalPresent;
+ return (DesktopEnvironment::IsKDE() || envVar) && portalPresent;
}();
return UsePortal;