rpms/compiz/devel restart.patch,NONE,1.1 compiz.spec,1.50,1.51

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Sep 26 18:08:48 UTC 2006


Author: sandmann

Update of /cvs/dist/rpms/compiz/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv17877

Modified Files:
	compiz.spec 
Added Files:
	restart.patch 
Log Message:
Add restart.patch (200280)

restart.patch:
 session.c |   72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 70 insertions(+), 2 deletions(-)

--- NEW FILE restart.patch ---
--- compiz-3173a142efe5e7af83ebb534a074d9d2a0c67a86/src/session.c.restart	2006-08-17 17:36:07.000000000 -0400
+++ compiz-3173a142efe5e7af83ebb534a074d9d2a0c67a86/src/session.c	2006-09-26 13:57:18.000000000 -0400
@@ -49,6 +49,71 @@
 static void iceInit (void);
 
 static void
+set_string_list_property (SmcConn connection,
+			  const char *name,
+			  const char **values)
+{
+    SmProp prop, *pProp;
+    int i;
+
+    prop.name = (char *)name;
+    prop.type = SmLISTofARRAY8;
+
+    i = 0;
+    while (values[i] != NULL)
+	i++;
+
+    prop.vals = malloc (i * sizeof (SmPropValue));
+    if (!prop.vals)
+	return;
+
+    i = 0;
+    while (values[i] != NULL)
+    {
+	prop.vals[i].value = (char *)values[i];
+	prop.vals[i].length = strlen (values[i]);
+
+	i++;
+    }
+
+    prop.num_vals = i;
+
+    pProp = ∝
+    SmcSetProperties (connection, 1, &pProp);
+
+    free (prop.vals);
+}
+
+static void
+set_clone_restart_commands (SmcConn connection)
+{
+    const char *clone[] = { "compiz", NULL };
+    const char *restart[] = { "compiz", "gconf", NULL };
+    
+    set_string_list_property (connection, SmCloneCommand, clone);
+    set_string_list_property (connection, SmRestartCommand, restart);
+}
+
+static void
+set_restart_style (SmcConn	connection)
+{
+    SmProp	prop, *pProp;
+    SmPropValue propVal;
+    char        hint = SmRestartImmediately;
+
+    prop.name = SmRestartStyleHint;
+    prop.type = SmCARD8;
+    prop.num_vals = 1;
+    prop.vals = &propVal;
+    propVal.value = &hint;
+    propVal.length = 1;
+
+    pProp = ∝
+
+    SmcSetProperties (connection, 1, &pProp);
+}
+
+static void
 saveYourselfGotProps (SmcConn   connection,
 		      SmPointer client_data,
 		      int       num_props,
@@ -69,13 +134,16 @@
 		    SmcSetProperties (connection, 1, &props[p]);
 		    props[p]->vals[i + 1] = oldVal;
 
-		    SmcSaveYourselfDone (connection, 1);
-		    return;
+		    goto out;
 		}
 	    }
 	}
     }
 
+out:
+    set_restart_style (connection);
+    set_clone_restart_commands (connection);
+    
     SmcSaveYourselfDone (connection, 1);
 }
 


Index: compiz.spec
===================================================================
RCS file: /cvs/dist/rpms/compiz/devel/compiz.spec,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- compiz.spec	25 Sep 2006 22:54:17 -0000	1.50
+++ compiz.spec	26 Sep 2006 18:08:46 -0000	1.51
@@ -52,6 +52,7 @@
 Patch111: button-clicks.patch
 Patch112: positioning.patch
 Patch113: resize-offset.patch
+Patch114: restart.patch
 
 %description
 Compiz is one of the first OpenGL-accelerated compositing window
@@ -94,6 +95,7 @@
 %patch111 -p1 -b .button-clicks
 %patch112 -p1 -b .positioning
 %patch113 -p1 -b .resize-offset
+%patch114 -p1 -b .restart
 
 %build
 rm -rf $RPM_BUILD_ROOT
@@ -173,6 +175,10 @@
 %{_includedir}/compiz
 
 %changelog
+* Tue Sep 26 2006 Soren Sandmann <sandmann at redhat.com> - 0.0.13-0.29.20060817git.fc6
+- Add restart.patch to make compiz ask the session manager to restart it
+  if it crashes (bug 200280).
+
 * Mon Sep 25 2006 Soren Sandmann <sandmann at redhat.com> - 0.0.13-0.28.20060817git.fc6
 - Change plane.patch to not do cyclical window movement in dimensions
   where the desktop has size 1 (bug 207263).




More information about the fedora-cvs-commits mailing list