46 lines
1.8 KiB
Diff
46 lines
1.8 KiB
Diff
--- gnome-session-2.23.4.1-pre/gnome-session/session.c 2008-06-17 08:24:45.000000000 -0500
|
|
+++ gnome-session-2.23.4.1-work/gnome-session/session.c 2008-07-20 22:32:00.000000000 -0500
|
|
@@ -347,6 +347,8 @@ append_legacy_session_apps (GsmSession *
|
|
{
|
|
GKeyFile *saved;
|
|
int num_clients, i;
|
|
+ gchar *compiz_enable_path;
|
|
+ gboolean compiz_enabled = FALSE;
|
|
|
|
saved = g_key_file_new ();
|
|
if (!g_key_file_load_from_file (saved, session_filename, 0, NULL))
|
|
@@ -356,12 +358,33 @@ append_legacy_session_apps (GsmSession *
|
|
return;
|
|
}
|
|
|
|
+ /* See if compiz is enabled; if it is, we have to replace legacy metacity/compiz
|
|
+ * entries with gnome-wm */
|
|
+ compiz_enable_path = g_build_filename (g_get_user_config_dir (), "compiz", "enable-compiz", NULL);
|
|
+ compiz_enabled = compiz_enable_path && g_file_test (compiz_enable_path, G_FILE_TEST_IS_REGULAR);
|
|
+ g_free (compiz_enable_path);
|
|
+
|
|
num_clients = g_key_file_get_integer (saved, "Default", "num_clients", NULL);
|
|
for (i = 0; i < num_clients; i++)
|
|
{
|
|
GsmApp *app = gsm_app_resumed_new_from_legacy_session (saved, i);
|
|
if (app)
|
|
+ {
|
|
+ GsmAppResumed *app_resumed = (GsmAppResumed *) app;
|
|
+
|
|
+ /* Maybe replace legacy metacity/compiz with gnome-wm */
|
|
+ if (app_resumed->restart_command &&
|
|
+ (((!strcmp (app_resumed->restart_command, "metacity") ||
|
|
+ !strcmp (app_resumed->restart_command, "/usr/bin/metacity")) && compiz_enabled) ||
|
|
+ (!strcmp (app_resumed->restart_command, "compiz") ||
|
|
+ !strcmp (app_resumed->restart_command, "/usr/bin/compiz"))))
|
|
+ {
|
|
+ g_free (app_resumed->restart_command);
|
|
+ app_resumed->restart_command = g_strdup ("gnome-wm");
|
|
+ }
|
|
+
|
|
append_app (session, app);
|
|
+ }
|
|
}
|
|
|
|
g_key_file_free (saved);
|