[mutter/gnome-3-0] Make session saving work a bit better
- From: Owen Taylor <otaylor src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/gnome-3-0] Make session saving work a bit better
- Date: Wed, 25 May 2011 19:39:42 +0000 (UTC)
commit bbfcde1caa8a3795965ed611834860a9fb7566eb
Author: Matthias Clasen <mclasen redhat com>
Date: Fri Apr 29 07:23:30 2011 -0400
Make session saving work a bit better
Previously, the restart command hardcoded "mutter" as the binary name.
This commit changes it to use g_get_prgname() which has a better chance
of being correct (and it does fix session saving for gnome-shell).
Now that mutter is a library, it might be more correct (but also
much higher overhead) to add api for setting these things from
the outside.
https://bugzilla.gnome.org/show_bug.cgi?id=648828
src/core/session.c | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
---
diff --git a/src/core/session.c b/src/core/session.c
index 65542f3..c19b17c 100644
--- a/src/core/session.c
+++ b/src/core/session.c
@@ -308,13 +308,16 @@ meta_session_init (const char *previous_client_id,
*/
char hint = SmRestartIfRunning;
char priority = 20; /* low to run before other apps */
-
+ const char *prgname;
+
+ prgname = g_get_prgname ();
+
prop1.name = SmProgram;
prop1.type = SmARRAY8;
prop1.num_vals = 1;
prop1.vals = &prop1val;
- prop1val.value = "mutter";
- prop1val.length = strlen ("mutter");
+ prop1val.value = (char *)prgname;
+ prop1val.length = strlen (prgname);
/* twm sets getuid() for this, but the SM spec plainly
* says pw_name, twm is on crack
@@ -573,6 +576,9 @@ set_clone_restart_commands (void)
char *discardv[10];
int i;
SmProp prop1, prop2, prop3, *props[3];
+ const char *prgname;
+
+ prgname = g_get_prgname ();
/* Restart (use same client ID) */
@@ -582,7 +588,7 @@ set_clone_restart_commands (void)
g_return_if_fail (client_id);
i = 0;
- restartv[i] = "mutter";
+ restartv[i] = (char *)prgname;
++i;
restartv[i] = "--sm-client-id";
++i;
@@ -603,7 +609,7 @@ set_clone_restart_commands (void)
/* Clone (no client ID) */
i = 0;
- clonev[i] = "mutter";
+ clonev[i] = (char *)prgname;
++i;
clonev[i] = NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]