{
int r;
const struct layer *ly;
+ struct buxton_layer unset_layer;
if (!layer || !key || !*key || !val) {
bxt_err("Invalid parameter");
}
r = set_val(ly, layer->uid, BUXTON_LAYER_BASE, key, rpriv, wpriv, val);
+ if (r != BUXTON_ERROR_NONE) {
+ bxt_err("failed to create (%s: %s) %d", ly->name, key, r);
+ return r;
+ }
+
+ if (ly->storage == STORAGE_PERSISTENT) {
+ r = set_val(ly, layer->uid, BUXTON_LAYER_NORMAL, key, rpriv, wpriv, val);
+ if (r != BUXTON_ERROR_NONE) {
+ bxt_err("failed to create (%s: %s) %d", ly->name, key, r);
+ unset_layer = *layer;
+ unset_layer.type = BUXTON_LAYER_BASE;
+ direct_unset(&unset_layer, key);
+ }
+ }
return r;
}