diff options
author | Jason M. Bills <jason.m.bills@linux.intel.com> | 2021-08-26 22:04:05 +0300 |
---|---|---|
committer | Jason M. Bills <jason.m.bills@linux.intel.com> | 2021-08-26 22:04:05 +0300 |
commit | ae908254d22318b9e27acf6e5e28d1a4ab5e2195 (patch) | |
tree | 0d057ad30ca7f77c7c299762d60929e34ff51ab5 /meta-openembedded/meta-xfce | |
parent | 67327ddc580cb9a85219a534844832a1682780d4 (diff) | |
parent | 66d661a7f7784d58c8a437f1cdeb0c0ab03f0364 (diff) | |
download | openbmc-ae908254d22318b9e27acf6e5e28d1a4ab5e2195.tar.xz |
Merge tag '0.70' of ssh://git-amr-1.devtools.intel.com:29418/openbmc-openbmc into update
Diffstat (limited to 'meta-openembedded/meta-xfce')
-rw-r--r-- | meta-openembedded/meta-xfce/README | 2 | ||||
-rw-r--r-- | meta-openembedded/meta-xfce/recipes-apps/mousepad/files/0001-Plugin-support-Properly-handle-plugin-settings.patch | 279 | ||||
-rw-r--r-- | meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.5.5.bb | 2 | ||||
-rw-r--r-- | meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.11.0.bb (renamed from meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.10.0.bb) | 3 | ||||
-rw-r--r-- | meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.16.2.bb (renamed from meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.16.1.bb) | 2 |
5 files changed, 284 insertions, 4 deletions
diff --git a/meta-openembedded/meta-xfce/README b/meta-openembedded/meta-xfce/README index 70ad47a2d..bbf4b2edf 100644 --- a/meta-openembedded/meta-xfce/README +++ b/meta-openembedded/meta-xfce/README @@ -17,6 +17,6 @@ BBMASK = "meta-xfce/recipes-multimedia" Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-xfce]' in the subject' When sending single patches, please using something like: -'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-xfce][PATCH' +git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix='meta-xfce][PATCH' Layer maintainer: Kai Kang <kai.kang@windriver.com> diff --git a/meta-openembedded/meta-xfce/recipes-apps/mousepad/files/0001-Plugin-support-Properly-handle-plugin-settings.patch b/meta-openembedded/meta-xfce/recipes-apps/mousepad/files/0001-Plugin-support-Properly-handle-plugin-settings.patch new file mode 100644 index 000000000..0ace907c4 --- /dev/null +++ b/meta-openembedded/meta-xfce/recipes-apps/mousepad/files/0001-Plugin-support-Properly-handle-plugin-settings.patch @@ -0,0 +1,279 @@ +From 6d1800a305698f801236a2d73ebe178fa2d1139d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= <gael@xfce.org> +Date: Sat, 12 Jun 2021 16:45:56 +0200 +Subject: [PATCH] Plugin support: Properly handle plugin settings + +What was done in !92 was strictly speaking only suitable for one plugin. +This could be extended to several plugins by adding a `.gschema.xml` +file in `plugins/`, intermediate between the one of the application and +those of the plugins, or by refactoring the Makefiles with inclusions +and a single call to `@GSETTINGS_RULES@`. + +But in any case, due to the relative rigidity of the `.gschema.xml` file +format and the internal workings of `glib-compile-schemas`, this would +only be suitable for plugins that are present at compile time, i.e. +"fake plugins". + +Instead, this commit adds the plugin settings at load time, as is +natural and as the `GSettingsSchema` documentation states. To do this, +the setting store is extended to contain several roots: the application +root and the plugin roots. + +For the latter, a unified naming convention is preserved, with the +prefix `org.xfce.mousepad.plugins.`, but they are in fact completely +independent of each other and independent of the application root. + +Fixes #136, related to !92. + +Upstream-Status: Backport [https://gitlab.xfce.org/apps/mousepad/-/commit/0d9d4f05aace800118d0a390e4e5dc5ebb940ca5] + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + mousepad/mousepad-application.c | 12 +++- + mousepad/mousepad-settings-store.c | 70 ++++++++++++------- + mousepad/mousepad-settings-store.h | 3 + + mousepad/mousepad-settings.c | 14 +++- + mousepad/mousepad-settings.h | 1 + + mousepad/org.xfce.mousepad.gschema.xml | 1 - + ...g.xfce.mousepad.plugins.gspell.gschema.xml | 4 -- + 7 files changed, 71 insertions(+), 34 deletions(-) + +diff --git a/mousepad/mousepad-application.c b/mousepad/mousepad-application.c +index d9a64ff..378d78e 100644 +--- a/mousepad/mousepad-application.c ++++ b/mousepad/mousepad-application.c +@@ -721,7 +721,7 @@ mousepad_application_load_plugins (MousepadApplication *application) + GError *error = NULL; + GDir *dir; + const gchar *basename; +- gchar *provider_name; ++ gchar *provider_name, *schema_id; + gchar **strs; + gsize n_strs; + +@@ -775,6 +775,16 @@ mousepad_application_load_plugins (MousepadApplication *application) + application, G_CONNECT_SWAPPED); + g_action_map_add_action (G_ACTION_MAP (application), G_ACTION (action)); + ++ /* add its settings to the setting store */ ++ if (g_str_has_prefix (provider_name, "mousepad-plugin-")) ++ schema_id = provider_name + 16; ++ else ++ schema_id = provider_name; ++ ++ schema_id = g_strconcat (MOUSEPAD_ID, ".plugins.", schema_id, NULL); ++ mousepad_settings_add_root (schema_id); ++ g_free (schema_id); ++ + /* instantiate this provider types and initialize its action state */ + if (g_strv_contains ((const gchar *const *) strs, provider_name)) + { +diff --git a/mousepad/mousepad-settings-store.c b/mousepad/mousepad-settings-store.c +index de989bd..d117c53 100644 +--- a/mousepad/mousepad-settings-store.c ++++ b/mousepad/mousepad-settings-store.c +@@ -29,9 +29,11 @@ + + struct MousepadSettingsStore_ + { +- GObject parent; +- GSettings *root; +- GHashTable *keys; ++ GObject parent; ++ ++ GSettingsBackend *backend; ++ GList *roots; ++ GHashTable *keys; + }; + + +@@ -76,8 +78,10 @@ mousepad_setting_key_new (const gchar *key_name, + + + static void +-mousepad_setting_key_free (MousepadSettingKey *key) ++mousepad_setting_key_free (gpointer data) + { ++ MousepadSettingKey *key = data; ++ + if (G_LIKELY (key != NULL)) + { + g_object_unref (key->settings); +@@ -138,16 +142,16 @@ mousepad_settings_store_class_init (MousepadSettingsStoreClass *klass) + static void + mousepad_settings_store_finalize (GObject *object) + { +- MousepadSettingsStore *self; ++ MousepadSettingsStore *self = MOUSEPAD_SETTINGS_STORE (object); + + g_return_if_fail (MOUSEPAD_IS_SETTINGS_STORE (object)); + +- self = MOUSEPAD_SETTINGS_STORE (object); ++ if (self->backend != NULL) ++ g_object_unref (self->backend); + ++ g_list_free_full (self->roots, g_object_unref); + g_hash_table_destroy (self->keys); + +- g_object_unref (self->root); +- + G_OBJECT_CLASS (mousepad_settings_store_parent_class)->finalize (object); + } + +@@ -212,28 +216,19 @@ static void + mousepad_settings_store_init (MousepadSettingsStore *self) + { + #ifdef MOUSEPAD_SETTINGS_KEYFILE_BACKEND +- GSettingsBackend *backend; +- gchar *conf_file; +- conf_file = g_build_filename (g_get_user_config_dir (), +- "Mousepad", +- "settings.conf", +- NULL); +- backend = g_keyfile_settings_backend_new (conf_file, "/", NULL); ++ gchar *conf_file; ++ ++ conf_file = g_build_filename (g_get_user_config_dir (), "Mousepad", "settings.conf", NULL); ++ self->backend = g_keyfile_settings_backend_new (conf_file, "/", NULL); + g_free (conf_file); +- self->root = g_settings_new_with_backend (MOUSEPAD_ID, backend); +- g_object_unref (backend); + #else +- self->root = g_settings_new (MOUSEPAD_ID); ++ self->backend = NULL; + #endif + +- self->keys = g_hash_table_new_full (g_str_hash, +- g_str_equal, +- NULL, +- (GDestroyNotify) mousepad_setting_key_free); ++ self->roots = NULL; ++ self->keys = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, mousepad_setting_key_free); + +- mousepad_settings_store_add_settings (self, MOUSEPAD_ID, +- g_settings_schema_source_get_default (), +- self->root); ++ mousepad_settings_store_add_root (self, MOUSEPAD_ID); + } + + +@@ -246,6 +241,31 @@ mousepad_settings_store_new (void) + + + ++void ++mousepad_settings_store_add_root (MousepadSettingsStore *self, ++ const gchar *schema_id) ++{ ++ GSettingsSchemaSource *source; ++ GSettingsSchema *schema; ++ GSettings *root; ++ ++ source = g_settings_schema_source_get_default (); ++ schema = g_settings_schema_source_lookup (source, schema_id, TRUE); ++ ++ /* exit silently if no schema is found: plugins may have settings or not */ ++ if (schema == NULL) ++ return; ++ ++ root = g_settings_new_full (schema, self->backend, NULL); ++ g_settings_schema_unref (schema); ++ ++ self->roots = g_list_prepend (self->roots, root); ++ ++ mousepad_settings_store_add_settings (self, schema_id, source, root); ++} ++ ++ ++ + const gchar * + mousepad_settings_store_lookup_key_name (MousepadSettingsStore *self, + const gchar *setting) +diff --git a/mousepad/mousepad-settings-store.h b/mousepad/mousepad-settings-store.h +index 3f5cae1..4842036 100644 +--- a/mousepad/mousepad-settings-store.h ++++ b/mousepad/mousepad-settings-store.h +@@ -38,6 +38,9 @@ GType mousepad_settings_store_get_type (void); + + MousepadSettingsStore *mousepad_settings_store_new (void); + ++void mousepad_settings_store_add_root (MousepadSettingsStore *store, ++ const gchar *schema_id); ++ + const gchar *mousepad_settings_store_lookup_key_name (MousepadSettingsStore *store, + const gchar *setting); + +diff --git a/mousepad/mousepad-settings.c b/mousepad/mousepad-settings.c +index d071de6..66b338d 100644 +--- a/mousepad/mousepad-settings.c ++++ b/mousepad/mousepad-settings.c +@@ -24,6 +24,15 @@ static MousepadSettingsStore *settings_store = NULL; + + + ++void ++mousepad_settings_init (void) ++{ ++ if (settings_store == NULL) ++ settings_store = mousepad_settings_store_new (); ++} ++ ++ ++ + void + mousepad_settings_finalize (void) + { +@@ -39,10 +48,9 @@ mousepad_settings_finalize (void) + + + void +-mousepad_settings_init (void) ++mousepad_settings_add_root (const gchar *schema_id) + { +- if (settings_store == NULL) +- settings_store = mousepad_settings_store_new (); ++ mousepad_settings_store_add_root (settings_store, schema_id); + } + + +diff --git a/mousepad/mousepad-settings.h b/mousepad/mousepad-settings.h +index bc63d11..615be51 100644 +--- a/mousepad/mousepad-settings.h ++++ b/mousepad/mousepad-settings.h +@@ -87,6 +87,7 @@ G_BEGIN_DECLS + + void mousepad_settings_init (void); + void mousepad_settings_finalize (void); ++void mousepad_settings_add_root (const gchar *schema_id); + + void mousepad_setting_bind (const gchar *setting, + gpointer object, +diff --git a/mousepad/org.xfce.mousepad.gschema.xml b/mousepad/org.xfce.mousepad.gschema.xml +index e802719..8509ee3 100644 +--- a/mousepad/org.xfce.mousepad.gschema.xml ++++ b/mousepad/org.xfce.mousepad.gschema.xml +@@ -39,7 +39,6 @@ + + <!-- generic schemas --> + <schema id="org.xfce.mousepad" path="/org/xfce/mousepad/" gettext-domain="mousepad"> +- <child name="plugins" schema="org.xfce.mousepad.plugins"/> + <child name="preferences" schema="org.xfce.mousepad.preferences"/> + <child name="state" schema="org.xfce.mousepad.state"/> + </schema> +diff --git a/plugins/gspell-plugin/org.xfce.mousepad.plugins.gspell.gschema.xml b/plugins/gspell-plugin/org.xfce.mousepad.plugins.gspell.gschema.xml +index 6db65b6..95295ba 100644 +--- a/plugins/gspell-plugin/org.xfce.mousepad.plugins.gspell.gschema.xml ++++ b/plugins/gspell-plugin/org.xfce.mousepad.plugins.gspell.gschema.xml +@@ -1,9 +1,5 @@ + <schemalist> + +- <schema id="org.xfce.mousepad.plugins" path="/org/xfce/mousepad/plugins/" gettext-domain="mousepad"> +- <child name="gspell" schema="org.xfce.mousepad.plugins.gspell"/> +- </schema> +- + <schema id="org.xfce.mousepad.plugins.gspell" path="/org/xfce/mousepad/plugins/gspell/" gettext-domain="mousepad"> + <child name="preferences" schema="org.xfce.mousepad.plugins.gspell.preferences"/> + </schema> +-- +2.17.1 + diff --git a/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.5.5.bb b/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.5.5.bb index 830d86b8a..a93ff551b 100644 --- a/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.5.5.bb +++ b/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.5.5.bb @@ -7,6 +7,8 @@ DEPENDS = "gtk+3 gtksourceview4 xfconf xfce4-dev-tools-native" inherit xfce-app gsettings mime-xdg +SRC_URI += "file://0001-Plugin-support-Properly-handle-plugin-settings.patch" + SRC_URI[sha256sum] = "40c35f00e0e10df50a59bd0dbba9007d2fb5574ed8a2aa73b0fc5ef40e64abe1" PACKAGECONFIG ??= "" diff --git a/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.10.0.bb b/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.11.0.bb index fbca96f60..e611ddd93 100644 --- a/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.10.0.bb +++ b/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.11.0.bb @@ -10,7 +10,6 @@ inherit xfce-app mime-xdg RRECOMMENDS_${PN} += "tumbler" -SRC_URI[md5sum] = "4249e14fba78728481d89ce61a8771fc" -SRC_URI[sha256sum] = "16225dd74245eb6e0f82b9c72c6112f161bb8d8b11f3fc77277b7bc3432d4769" +SRC_URI[sha256sum] = "877e30d412c8cbfa9706f4ac0cab1a478f5829beafb773addc7722ca0cb78823" FILES_${PN} += "${datadir}/metainfo" diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.16.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.16.2.bb index ccd55723a..bf853bfed 100644 --- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.16.1.bb +++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.16.2.bb @@ -9,7 +9,7 @@ inherit xfce features_check mime-xdg REQUIRED_DISTRO_FEATURES = "x11" SRC_URI += "file://0001-xsettings.xml-Set-default-themes.patch" -SRC_URI[sha256sum] = "bb28e1be7aa34d0edb1cfbaacc509a4267db56828b36cd6be312a202973635c6" +SRC_URI[sha256sum] = "4dd7cb420860535e687f673c0b5c0274e0d2fb67181281d4b85be9197da03d7e" EXTRA_OECONF += "--enable-maintainer-mode --disable-debug" |