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);