On 3/28/07, dragoran <[EMAIL PROTECTED]> wrote:
Hello,
After trying to solve a issue with desktop-effects in fedora (compiz
does not let itself to be replaced by metacity).
We come to the conclusion that the compiz session management code is broken.
When unmanaging the screen compiz should unregister itself from the
session manager to let a new started wm to take over the screen.
See https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=229113

It looks like we're just missing closeSession() when we exit due to a
lost selection.  The attached patch should fix that as well as a
similar issue with SIGHUP. I'm not a session management expert though.

cheers,
Kristian
--- a/src/display.c
+++ b/src/display.c
@@ -2022,6 +2022,13 @@ waitForVideoSync (CompScreen *s)
     }
 }
 
+void prepareShutDown(void)
+{
+    while (popPlugin ());
+    if (!disableSm)
+	closeSession ();
+}
+
 void
 eventLoop (void)
 {
@@ -2053,13 +2060,13 @@ eventLoop (void)
 
 	if (restartSignal)
 	{
-	    while (popPlugin ());
+	    prepareShutDown ();
 	    execvp (programName, programArgv);
 	    exit (1);
 	}
 	else if (shutDown)
 	{
-	    while (popPlugin ());
+	    prepareShutDown ();
 	    exit (0);
 	}
 
--- a/src/main.c
+++ b/src/main.c
@@ -259,8 +259,5 @@ main (int argc, char **argv)
 
     eventLoop ();
 
-    if (!disableSm)
-	closeSession ();
-
     return 0;
 }
_______________________________________________
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz

Reply via email to