patches/gnome-session-02-gnome-about.diff
author davelam
Wed, 15 Apr 2009 07:01:52 +0000
changeset 15621 b447de05cc21
parent 15330 a935e2c278b2
child 16100 4d7b9d2fbc25
permissions -rw-r--r--
Bump to 2.26.1

--- gnome-session-2.26.1/gnome-session/gsm-manager.c.ori	2009-04-15 07:31:14.825694454 +0100
+++ gnome-session-2.26.1/gnome-session/gsm-manager.c	2009-04-15 07:33:02.709285954 +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,10 @@
         gsm_manager_set_phase (manager, GSM_MANAGER_PHASE_INITIALIZATION);
         debug_app_summary (manager);
         start_phase (manager);
+
+	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