All pastes #760227 Raw Edit

Etwas

public text v1 · immutable
·published 2007-11-03 21:01 UTC
rendered paste body
diff --git a/settings-backend/gconf.c b/settings-backend/gconf.c
index cacee87..9078d9d 100644
--- a/settings-backend/gconf.c
+++ b/settings-backend/gconf.c
@@ -1159,6 +1159,12 @@ readIntegratedOption (CCSContext *context,
     case OptionKey:
 	{
 	    char *value;
+
+	    /* read Compiz option value to get the correct button and edge
+	       bindings */
+	    readOption (setting);
+
+	    /* now get the key part from the corresponding metacity value */
 	    value = gconf_client_get_string (client,
 					     specialOptions[index].gnomeName,
 					     &err);
@@ -1244,6 +1250,9 @@ readIntegratedOption (CCSContext *context,
 		char       *value;
 		const char *name;
 
+		/* read compiz option to get key and edge option */
+		readOption (setting);
+
 		name = specialOptions[index].gnomeName;
 		value = gconf_client_get_string (client, name, &err);
 
@@ -1704,6 +1713,10 @@ writeIntegratedOption (CCSContext *context,
 	    char  *newValue;
 	    gchar *currentValue;
 
+	    /* save the option also to its original path as button and edge
+	       need to be saved, too */
+	    writeOption (setting);
+
 	    newValue = ccsKeyBindingToString (&setting->value->value.asAction);
 	    if (newValue && !strlen (newValue))
 	    {
@@ -1789,6 +1802,9 @@ writeIntegratedOption (CCSContext *context,
 		gchar        *currentValue;
 		unsigned int modMask;
 
+		/* write to Compiz path to set the non-integrated parts */
+		writeOption (setting);
+
 		modMask = setting->value->value.asAction.buttonModMask;
 		newValue =
 		    ccsKeyBindingToString (&setting->value->value.asAction);