diff options
author | Tony Crisci <tony@dubstepdish.com> | 2018-01-17 09:49:02 -0500 |
---|---|---|
committer | Tony Crisci <tony@dubstepdish.com> | 2018-01-17 09:49:02 -0500 |
commit | 9f54cd89359119897fed2747c373879c09ae8706 (patch) | |
tree | 024ecf284c38c5017068b82902d66ec4342f8291 /sway/config | |
parent | eb0f432a840dbe860b8c20f7a16e0281f9026326 (diff) |
copy config references for input and seat
Diffstat (limited to 'sway/config')
-rw-r--r-- | sway/config/input.c | 10 | ||||
-rw-r--r-- | sway/config/seat.c | 11 |
2 files changed, 21 insertions, 0 deletions
diff --git a/sway/config/input.c b/sway/config/input.c index 96181302..c4f6211d 100644 --- a/sway/config/input.c +++ b/sway/config/input.c @@ -90,6 +90,16 @@ void merge_input_config(struct input_config *dst, struct input_config *src) { } } +struct input_config *copy_input_config(struct input_config *ic) { + struct input_config *copy = calloc(1, sizeof(struct input_config)); + if (copy == NULL) { + wlr_log(L_ERROR, "could not allocate input config"); + return NULL; + } + merge_input_config(copy, ic); + return copy; +} + void free_input_config(struct input_config *ic) { if (!ic) { return; diff --git a/sway/config/seat.c b/sway/config/seat.c index 03cc6d4e..bd8b45c8 100644 --- a/sway/config/seat.c +++ b/sway/config/seat.c @@ -99,6 +99,17 @@ void merge_seat_config(struct seat_config *dest, struct seat_config *source) { } } +struct seat_config *copy_seat_config(struct seat_config *seat) { + struct seat_config *copy = new_seat_config(seat->name); + if (copy == NULL) { + return NULL; + } + + merge_seat_config(copy, seat); + + return copy; +} + void free_seat_config(struct seat_config *seat) { if (!seat) { return; |