Warning, /packaging/flatpak-kde-applications/qgnomeplatform.patch is written in an unsupported language. File is not indexed.
0001 diff --git a/src/gnomehintssettings.cpp b/src/gnomehintssettings.cpp 0002 index 3708a5c..10f9fc3 100644 0003 --- a/src/gnomehintssettings.cpp 0004 +++ b/src/gnomehintssettings.cpp 0005 @@ -52,8 +52,30 @@ GnomeHintsSettings::GnomeHintsSettings() 0006 : QObject(0) 0007 , m_gtkThemeDarkVariant(false) 0008 , m_palette(nullptr) 0009 - , m_settings(g_settings_new("org.gnome.desktop.interface")) 0010 { 0011 + bool inSandbox = false; 0012 + if (!qEnvironmentVariableIsEmpty("XDG_RUNTIME_DIR")) { 0013 + const QString runtimeDir = qgetenv("XDG_RUNTIME_DIR"); 0014 + if (!runtimeDir.isEmpty()) { 0015 + inSandbox = QFileInfo::exists(runtimeDir + QLatin1String("/flatpak-info")); 0016 + } 0017 + } 0018 + 0019 + if (inSandbox) { 0020 + if (qEnvironmentVariableIsSet("GIO_EXTRA_MODULES")) { 0021 + m_gioExtraModules = qgetenv("GIO_EXTRA_MODULES"); 0022 + QString gioExtraModules = QStringLiteral("%1:%2").arg(m_gioExtraModules).arg(QStringLiteral("/usr/share/runtime/lib/plugins/QGnomePlatform/lib/gio/modules")); 0023 + qputenv("GIO_EXTRA_MODULES", gioExtraModules.toUtf8()); 0024 + } else { 0025 + qputenv("GIO_EXTRA_MODULES", QByteArray("/usr/share/runtime/lib/plugins/QGnomePlatform/lib/gio/modules")); 0026 + } 0027 + 0028 + GSettingsSchemaSource *schema = g_settings_schema_source_new_from_directory("/usr/share/runtime/lib/plugins/QGnomePlatform/share/glib-2.0/schemas/", g_settings_schema_source_get_default(), true, nullptr); 0029 + m_settings = g_settings_new_full(g_settings_schema_source_lookup(schema, "org.gnome.desktop.interface", true), nullptr, nullptr); 0030 + } else { 0031 + m_settings = g_settings_new("org.gnome.desktop.interface"); 0032 + } 0033 + 0034 gtk_init(nullptr, nullptr); 0035 0036 // Set log handler to suppress false GtkDialog warnings 0037 @@ -161,6 +183,8 @@ GnomeHintsSettings::GnomeHintsSettings() 0038 0039 GnomeHintsSettings::~GnomeHintsSettings() 0040 { 0041 + qputenv("GIO_EXTRA_MODULES", m_gioExtraModules.toUtf8()); 0042 + 0043 qDeleteAll(m_fonts); 0044 delete m_palette; 0045 } 0046 diff --git a/src/gnomehintssettings.h b/src/gnomehintssettings.h 0047 index ab3e09e..b4adf7a 100644 0048 --- a/src/gnomehintssettings.h 0049 +++ b/src/gnomehintssettings.h 0050 @@ -88,6 +88,7 @@ protected: 0051 private: 0052 QStringList xdgIconThemePaths() const; 0053 0054 + QString m_gioExtraModules; 0055 gboolean m_gtkThemeDarkVariant; 0056 gchar *m_gtkTheme; 0057 QPalette *m_palette;