Blame SOURCES/0019-capplet-fix-disable-check-items.patch

d379a5
From 76189ca50976f5f146ad86914a0c5ba932e77171 Mon Sep 17 00:00:00 2001
5d36d8
From: Ray Strode <rstrode@redhat.com>
5d36d8
Date: Mon, 27 Mar 2017 15:34:51 -0400
5d36d8
Subject: [PATCH 19/19] capplet: fix disable check items
5d36d8
5d36d8
An optimzation that tries to prevent transient desktop files from
5d36d8
accumulating in the user's homedirectory inadvertently broke the
5d36d8
ability for a user to disable startup applications.
5d36d8
5d36d8
This commit restores the broken functionality.
5d36d8
---
5d36d8
 capplet/gsp-app.c | 9 +++++----
5d36d8
 1 file changed, 5 insertions(+), 4 deletions(-)
5d36d8
5d36d8
diff --git a/capplet/gsp-app.c b/capplet/gsp-app.c
5d36d8
index 123ab217..1a0580e6 100644
5d36d8
--- a/capplet/gsp-app.c
5d36d8
+++ b/capplet/gsp-app.c
5d36d8
@@ -315,64 +315,65 @@ _gsp_app_user_equal_system (GspApp  *app,
5d36d8
         char          *str = NULL;
5d36d8
         GKeyFile      *keyfile = NULL;
5d36d8
         GDesktopAppInfo *app_info = NULL;
5d36d8
 
5d36d8
         manager = gsp_app_manager_get ();
5d36d8
         system_dir = gsp_app_manager_get_dir (manager,
5d36d8
                                               app->priv->xdg_system_position);
5d36d8
         g_object_unref (manager);
5d36d8
         if (!system_dir) {
5d36d8
                 goto out;
5d36d8
         }
5d36d8
 
5d36d8
         path = g_build_filename (system_dir, app->priv->basename, NULL);
5d36d8
 
5d36d8
         keyfile = g_key_file_new ();
5d36d8
         if (!g_key_file_load_from_file (keyfile, path, G_KEY_FILE_NONE, NULL)) {
5d36d8
                 goto out;
5d36d8
         }
5d36d8
 
5d36d8
         app_info = g_desktop_app_info_new_from_keyfile (keyfile);
5d36d8
 
5d36d8
         if (!app_info) {
5d36d8
                 goto out;
5d36d8
         }
5d36d8
 
5d36d8
         if (g_desktop_app_info_get_is_hidden (app_info)) {
5d36d8
                 goto out;
5d36d8
         }
5d36d8
 
5d36d8
         if (g_desktop_app_info_has_key (app_info,
5d36d8
-                                        GSP_KEY_FILE_DESKTOP_KEY_AUTOSTART_ENABLED) &&
5d36d8
-            !g_desktop_app_info_get_boolean (app_info,
5d36d8
-                                             GSP_KEY_FILE_DESKTOP_KEY_AUTOSTART_ENABLED)) {
5d36d8
-                goto out;
5d36d8
+                                        GSP_KEY_FILE_DESKTOP_KEY_AUTOSTART_ENABLED)) {
5d36d8
+                if (app->priv->enabled != g_desktop_app_info_get_boolean (app_info, GSP_KEY_FILE_DESKTOP_KEY_AUTOSTART_ENABLED))
5d36d8
+                        goto out;
5d36d8
+        } else if (!app->priv->enabled) {
5d36d8
+                        goto out;
5d36d8
         }
5d36d8
 
5d36d8
         if (!g_desktop_app_info_get_show_in (app_info, NULL)) {
5d36d8
                 goto out;
5d36d8
         }
5d36d8
 
5d36d8
         if (g_desktop_app_info_get_nodisplay (app_info)) {
5d36d8
                 goto out;
5d36d8
         }
5d36d8
 
5d36d8
         str = gsp_key_file_get_locale_string (keyfile,
5d36d8
                                               G_KEY_FILE_DESKTOP_KEY_NAME);
5d36d8
         if (!_gsp_str_equal (str, app->priv->name)) {
5d36d8
                 goto out;
5d36d8
         }
5d36d8
         g_clear_pointer (&str, g_free);
5d36d8
 
5d36d8
         str = gsp_key_file_get_locale_string (keyfile,
5d36d8
                                               G_KEY_FILE_DESKTOP_KEY_COMMENT);
5d36d8
         if (!_gsp_str_equal (str, app->priv->comment)) {
5d36d8
                 goto out;
5d36d8
         }
5d36d8
         g_clear_pointer (&str, g_free);
5d36d8
 
5d36d8
         str = gsp_key_file_get_string (keyfile,
5d36d8
                                        G_KEY_FILE_DESKTOP_KEY_EXEC);
5d36d8
         if (!_gsp_str_equal (str, app->priv->exec)) {
5d36d8
                 goto out;
5d36d8
         }
5d36d8
         g_clear_pointer (&str, g_free);
5d36d8
-- 
d379a5
2.17.0
5d36d8