Bug 589260 - Don't replace panel in Xephyr mode

Avoid grabbing the org.gnome.Panel name if we're running in
Xephyr, since that affects the main desktop.
This commit is contained in:
Colin Walters 2009-07-29 15:05:05 -04:00
parent 93ea4b07c1
commit 66e48da7cb
2 changed files with 16 additions and 10 deletions

2
src/gnome-shell.in Executable file → Normal file
View File

@ -273,6 +273,8 @@ if options.debug:
try: try:
if run_in_xephyr: if run_in_xephyr:
shell = start_xephyr() shell = start_xephyr()
# This makes us not grab the org.gnome.Panel name
os.environ['GNOME_SHELL_NO_REPLACE_PANEL'] = '1'
start_shell() start_shell()
else: else:
if gnome_panel_pid is not None: if gnome_panel_pid is not None:

View File

@ -741,18 +741,22 @@ shell_global_grab_dbus_service (ShellGlobal *global)
exit (0); exit (0);
} }
/* Also grab org.gnome.Panel to replace any existing panel process */ /* Also grab org.gnome.Panel to replace any existing panel process,
if (!dbus_g_proxy_call (bus, "RequestName", &error, * unless a special environment variable is passed. The environment
G_TYPE_STRING, "org.gnome.Panel", * variable is used by the gnome-shell (no --replace) launcher in
G_TYPE_UINT, DBUS_NAME_FLAG_REPLACE_EXISTING | DBUS_NAME_FLAG_DO_NOT_QUEUE, * Xephyr */
G_TYPE_INVALID, if (!g_getenv ("GNOME_SHELL_NO_REPLACE_PANEL"))
G_TYPE_UINT, &request_name_result,
G_TYPE_INVALID))
{ {
g_print ("failed to acquire org.gnome.Panel: %s\n", error->message); if (!dbus_g_proxy_call (bus, "RequestName", &error, G_TYPE_STRING,
exit (1); "org.gnome.Panel", G_TYPE_UINT,
DBUS_NAME_FLAG_REPLACE_EXISTING | DBUS_NAME_FLAG_DO_NOT_QUEUE,
G_TYPE_INVALID, G_TYPE_UINT,
&request_name_result, G_TYPE_INVALID))
{
g_print ("failed to acquire org.gnome.Panel: %s\n", error->message);
exit (1);
}
} }
g_object_unref (bus); g_object_unref (bus);
} }