This is a fix to provide some level of support for not automatically starting some applications which are deemed unnecessary when user is login on a Sun Ray DTU as described in http://defect.opensolaris.org/bz/show_bug.cgi?id=11467
The fix here in gnome-session is to check for the presence and value of the key X-SUNRAY-Disable=true and gnome-session checks for the presence of the X-property, _SUN_SUNRAY_HOME to indicate that is a DTU and hence not to start up the application associated with the desktop file. ----- Index: base-specs/gnome-session.spec =================================================================== --- base-specs/gnome-session.spec (revision 19421) +++ base-specs/gnome-session.spec (working copy) @@ -71,6 +71,8 @@ Patch18: gnome-session-18-fastreboot.diff #owner:gheet date:2009-09-10 type:bug doo:11230 Patch19: gnome-session-19-remove-dup.diff +#owner:gheet date:2009-09-10 type:branding doo:11467 +Patch20: gnome-session-20-sunray-profile.diff URL: http://www.gnome.org @@ -126,6 +128,7 @@ %patch17 -p1 #%patch18 -p1 %patch19 -p1 +%patch20 -p1 %build %ifos linux $ cat patches/gnome-session-20-sunray-profile.diff diff -urN -x'*nfs*' gnome-session-2.27.92/gnome-session/gsm-autostart-app.c ../SUNWgnome-session-2.27.92.hacked/gnome-session-2.27.92/gnome-session/gsm-autostart-app.c --- gnome-session-2.27.92/gnome-session/gsm-autostart-app.c 2009-07-01 13:45:30.000000000 +0100 +++ ../SUNWgnome-session-2.27.92.hacked/gnome-session-2.27.92/gnome-session/gsm-autostart-app.c 2009-09-21 14:41:00.117490099 +0100 @@ -28,6 +28,7 @@ #include <glib.h> #include <gio/gio.h> +#include <gdk/gdkx.h> #include <gconf/gconf-client.h> @@ -99,6 +100,38 @@ } static gboolean +is_sunray_client (void) +{ + Atom sunray_client_id; + + sunray_client_id = XInternAtom (GDK_DISPLAY (), + "_SUN_SUNRAY_HOME", True); + + if (sunray_client_id == None) { + return FALSE; + } + else return TRUE; +} + + +static gboolean +is_disabled_for_sunray_client (GsmApp *app) +{ + GsmAutostartAppPrivate *priv; + + priv = GSM_AUTOSTART_APP (app)->priv; + + if (egg_desktop_file_has_key (priv->desktop_file, + "X-SUNRAY-Disable", NULL) && + egg_desktop_file_get_boolean (priv->desktop_file, + "X-SUNRAY-Disable", NULL) && + is_sunray_client ()) + return TRUE; + else + return FALSE; +} + +static gboolean is_disabled (GsmApp *app) { GsmAutostartAppPrivate *priv; @@ -130,6 +163,10 @@ return TRUE; } + /* Add additional check for Sun Ray DTU */ + if (is_disabled_for_sunray_client (app)) + return TRUE; + /* Do not check AutostartCondition - this method is only to determine if the app is unconditionally disabled */
