diff options
-rw-r--r-- | cut-n-paste-code/libegg/eggsmclient.c | 20 | ||||
-rw-r--r-- | src/caja-application.c | 10 |
2 files changed, 20 insertions, 10 deletions
diff --git a/cut-n-paste-code/libegg/eggsmclient.c b/cut-n-paste-code/libegg/eggsmclient.c index cce8e6b0..153d98e8 100644 --- a/cut-n-paste-code/libegg/eggsmclient.c +++ b/cut-n-paste-code/libegg/eggsmclient.c @@ -53,6 +53,16 @@ G_DEFINE_TYPE (EggSMClient, egg_sm_client, G_TYPE_OBJECT) static EggSMClient *global_client; static EggSMClientMode global_client_mode = EGG_SM_CLIENT_MODE_NORMAL; +#if ENABLE_LIBUNIQUE == (0) +static gboolean +running_in_mate (void) +{ + return (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "MATE") == 0) + || (g_strcmp0 (g_getenv ("XDG_SESSION_DESKTOP"), "MATE") == 0) + || (g_strcmp0 (g_getenv ("DESKTOP_SESSION"), "MATE") == 0); +} +#endif + static void egg_sm_client_init (EggSMClient *client) { @@ -351,6 +361,16 @@ egg_sm_client_get (void) */ if (!global_client) global_client = g_object_new (EGG_TYPE_SM_CLIENT, NULL); + /*FIXME + /*Disabling when root/not in MATE in GtkApplication builds + /*as egg_sm_client_set_mode must be called prior to start of main loop + /*to stop caja restart but this is diffcult in GtkApplication + */ +#if ENABLE_LIBUNIQUE == (0) + if (geteuid () == 0 || !running_in_mate ()){ + global_client = g_object_new (EGG_TYPE_SM_CLIENT, NULL); + } +#endif } return global_client; diff --git a/src/caja-application.c b/src/caja-application.c index 0a995c40..f469eccf 100644 --- a/src/caja-application.c +++ b/src/caja-application.c @@ -348,8 +348,6 @@ smclient_quit_cb (EggSMClient *client, static void caja_application_smclient_initialize (CajaApplication *self) { - egg_sm_client_set_mode (EGG_SM_CLIENT_MODE_NORMAL); - g_signal_connect (self->smclient, "save_state", G_CALLBACK (smclient_save_state_cb), self); @@ -364,8 +362,6 @@ void caja_application_smclient_startup (CajaApplication *self) { g_assert (self->smclient == NULL); - - egg_sm_client_set_mode (EGG_SM_CLIENT_MODE_DISABLED); self->smclient = egg_sm_client_get (); } @@ -3250,12 +3246,6 @@ caja_application_startup (GApplication *app) instance = g_application_get_default (); - /* Always hold in if autostarted to avoid restart loop */ - /* Otherwise follow preferences/running in mate/running as root */ - if (exit_with_last_window == FALSE || self->priv->autostart == TRUE){ - g_application_hold (G_APPLICATION (instance)); - } - do_upgrades_once (self); } |