patches/gnome-session-02-gnome-about.diff
author rohinis
Tue, 29 Nov 2011 17:32:55 +0000
branchs11express-2010-11
changeset 22234 c23e64da3e06
parent 16100 4d7b9d2fbc25
permissions -rw-r--r--
2011-11-29 Rohini S <[email protected]> * patches/Python26-22-audio.diff: Fixes CVE-2010-1634 * specs/SUNWPython26.spec: Fixes CR 7085446

diff -urN -x '*.orig' gnome-session-2.27.4/gnome-session/gsm-manager.c ../SUNWgnome-session-2.26.1.hacked/gnome-session-2.27.4/gnome-session/gsm-manager.c
--- gnome-session-2.27.4/gnome-session/gsm-manager.c	2009-07-23 15:42:09.679931892 +0100
+++ ../SUNWgnome-session-2.26.1.hacked/gnome-session-2.27.4/gnome-session/gsm-manager.c	2009-07-23 15:50:29.967601535 +0100
@@ -376,6 +376,22 @@
 }
 
 static void start_phase (GsmManager *manager);
+#define ABOUT_PROMPT_KEY "/desktop/gnome/session/sun_extensions/viewed_about_jds_three"
+
+static gint
+show_gnome_about (gpointer data)
+{
+       int status;
+
+       if (g_spawn_command_line_async("gnome-about", NULL))
+       {
+               GConfClient *gconf_client = gconf_client_get_default ();
+               gconf_client_set_bool (gconf_client, ABOUT_PROMPT_KEY, TRUE, NULL);
+               g_object_unref (gconf_client);
+       }
+
+       return FALSE;
+}
 
 static void
 quit_request_completed (GsmConsolekit *consolekit,
@@ -1276,6 +1292,9 @@
 void
 gsm_manager_start (GsmManager *manager)
 {
+	gboolean show_about;
+	GConfClient *gconf_client;
+
         g_debug ("GsmManager: GSM starting to manage");
 
         g_return_if_fail (GSM_IS_MANAGER (manager));
@@ -1283,6 +1302,13 @@
         gsm_manager_set_phase (manager, GSM_MANAGER_PHASE_INITIALIZATION);
         debug_app_summary (manager);
         start_phase (manager);
+
+	/* Do not attempt to show gnome-about dialog if user is gdm (uid 50) */
+	if (getuid()==50)
+		return;
+	gconf_client = gconf_client_get_default ();
+	show_about = gconf_client_get_bool (gconf_client, ABOUT_PROMPT_KEY, NULL);
+	if (!show_about) gtk_timeout_add (4000, show_gnome_about, NULL);
 }
 
 static gboolean