[gnome-software/wip/kalev/shell-extensions-fixes: 6/10] shell extensions: Don't add duplicate system installed extensions
- From: Kalev Lember <klember src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software/wip/kalev/shell-extensions-fixes: 6/10] shell extensions: Don't add duplicate system installed extensions
- Date: Wed, 21 Feb 2018 10:10:13 +0000 (UTC)
commit 2d7c65665d38a46125cf4f5adc6211b139d6eb97
Author: Kalev Lember <klember redhat com>
Date: Wed Feb 21 09:00:41 2018 +0100
shell extensions: Don't add duplicate system installed extensions
System installed packages are already added by the packagekit plugin; if
we add the same thing again, we'll get double entries in the UI.
An improvement here would be to refine packagekit-managed extensions
with extra info in this plugin, but that's a separate fix for the
future.
plugins/shell-extensions/gs-plugin-shell-extensions.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/plugins/shell-extensions/gs-plugin-shell-extensions.c
b/plugins/shell-extensions/gs-plugin-shell-extensions.c
index 29053432..8962d2a3 100644
--- a/plugins/shell-extensions/gs-plugin-shell-extensions.c
+++ b/plugins/shell-extensions/gs-plugin-shell-extensions.c
@@ -138,7 +138,6 @@ gs_plugin_shell_extensions_parse_installed (GsPlugin *plugin,
id = as_utils_appstream_id_build (uuid);
app = gs_app_new (id);
- gs_app_set_scope (app, AS_APP_SCOPE_USER);
gs_app_set_metadata (app, "GnomeSoftware::Creator",
gs_plugin_get_name (plugin));
gs_app_set_management_plugin (app, gs_plugin_get_name (plugin));
@@ -175,8 +174,10 @@ gs_plugin_shell_extensions_parse_installed (GsPlugin *plugin,
guint val_int = (guint) g_variant_get_double (val);
switch (val_int) {
case GS_PLUGIN_SHELL_EXTENSION_KIND_SYSTEM:
+ gs_app_set_scope (app, AS_APP_SCOPE_SYSTEM);
+ break;
case GS_PLUGIN_SHELL_EXTENSION_KIND_PER_USER:
- gs_app_set_kind (app, AS_APP_KIND_SHELL_EXTENSION);
+ gs_app_set_scope (app, AS_APP_SCOPE_USER);
break;
default:
g_warning ("%s unknown type %u", uuid, val_int);
@@ -355,6 +356,10 @@ gs_plugin_add_installed (GsPlugin *plugin,
if (app == NULL)
return FALSE;
+ /* ignore system installed */
+ if (gs_app_get_scope (app) == AS_APP_SCOPE_SYSTEM)
+ continue;
+
/* save in the cache */
gs_plugin_cache_add (plugin, ext_uuid, app);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]