Merge pull request #83245 from worldofpeace/qgnomeplatform-patch
qgnomeplatform: hardcode gsettings schemas
This commit is contained in:
commit
e6afda424d
|
@ -1,4 +1,16 @@
|
||||||
{ mkDerivation, lib, fetchFromGitHub, pkgconfig, gtk3, qtbase, qmake, qtx11extras, pantheon }:
|
{ mkDerivation
|
||||||
|
, lib
|
||||||
|
, fetchFromGitHub
|
||||||
|
, pkgconfig
|
||||||
|
, gtk3
|
||||||
|
, glib
|
||||||
|
, qtbase
|
||||||
|
, qmake
|
||||||
|
, qtx11extras
|
||||||
|
, pantheon
|
||||||
|
, substituteAll
|
||||||
|
, gsettings-desktop-schemas
|
||||||
|
}:
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "qgnomeplatform";
|
pname = "qgnomeplatform";
|
||||||
|
@ -11,12 +23,21 @@ mkDerivation rec {
|
||||||
sha256 = "0fb1mzs6sx76bl7f0z2xhc0jq6y1c55jrw1v3na8577is6g5ji0a";
|
sha256 = "0fb1mzs6sx76bl7f0z2xhc0jq6y1c55jrw1v3na8577is6g5ji0a";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# Hardcode GSettings schema path to avoid crashes from missing schemas
|
||||||
|
(substituteAll {
|
||||||
|
src = ./hardcode-gsettings.patch;
|
||||||
|
gds_gsettings_path = glib.getSchemaPath gsettings-desktop-schemas;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
pkgconfig
|
pkgconfig
|
||||||
qmake
|
qmake
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
glib
|
||||||
gtk3
|
gtk3
|
||||||
qtbase
|
qtbase
|
||||||
qtx11extras
|
qtx11extras
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
diff --git a/common/gnomehintssettings.cpp b/common/gnomehintssettings.cpp
|
||||||
|
index 9860e57..40fa6ec 100644
|
||||||
|
--- a/common/gnomehintssettings.cpp
|
||||||
|
+++ b/common/gnomehintssettings.cpp
|
||||||
|
@@ -80,9 +80,17 @@ void gtkMessageHandler(const gchar *log_domain,
|
||||||
|
GnomeHintsSettings::GnomeHintsSettings()
|
||||||
|
: QObject(0)
|
||||||
|
, m_usePortal(checkUsePortalSupport())
|
||||||
|
- , m_gnomeDesktopSettings(g_settings_new("org.gnome.desktop.wm.preferences"))
|
||||||
|
- , m_settings(g_settings_new("org.gnome.desktop.interface"))
|
||||||
|
{
|
||||||
|
+ g_autoptr(GSettingsSchemaSource) schemaSource = nullptr;
|
||||||
|
+ g_autoptr(GSettingsSchema) gnomeDesktopSchema = nullptr;
|
||||||
|
+ g_autoptr(GSettingsSchema) settingsSchema = nullptr;
|
||||||
|
+
|
||||||
|
+ schemaSource = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", g_settings_schema_source_get_default(), true, nullptr);
|
||||||
|
+ gnomeDesktopSchema = g_settings_schema_source_lookup(schemaSource, "org.gnome.desktop.wm.preferences", false);
|
||||||
|
+ m_gnomeDesktopSettings = g_settings_new_full(gnomeDesktopSchema, nullptr, nullptr);
|
||||||
|
+ settingsSchema = g_settings_schema_source_lookup(schemaSource, "org.gnome.desktop.interface", false);
|
||||||
|
+ m_settings = g_settings_new_full(settingsSchema, nullptr, nullptr);
|
||||||
|
+
|
||||||
|
gtk_init(nullptr, nullptr);
|
||||||
|
|
||||||
|
// Set log handler to suppress false GtkDialog warnings
|
Loading…
Reference in New Issue