Since the "Session restart support" was added to compiz (Janueary 13th), it is no longer possible to replace the window manager reliably. Steps to reproduce:
1. Start compiz.
2. Open a terminal.
3. Type metacity --replace.
Expected result: metacity replaces compiz as window manager
Actual result: compiz relaunches itself.
Sometimes, it works to type "killall compiz && metacity --replace", but this does not always have the desired result.
Created attachment 8508 [details] [review]
Try and fix session restart
I looked at metacity and tried to fix this issue.
I think the function closeSession() needs to change the SmRestartStyleHint to something other than SmRestartImmediately before exiting. Also, the eventLoop() needs to return to main when it receives shutDown, so that main can call closeSession() before exiting.
The patch is intended to do these two things.
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.
We've looked at the session code at least a few times since this. This should be fixed.
Please reopen the bug at bugs.opencompositing.org if you still experience this.