diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2023-01-08 09:21:30 -0500 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2023-01-08 09:21:30 -0500 |
| commit | 37e3e7748ca10d15c50a395b25551a4970924822 (patch) | |
| tree | 94b773c7ff37dfe45c6e99cfaecff98927bf0b8b /swaynag/swaynag.c | |
| parent | cecc555febf7d036fbbc201ae75dd45307d53818 (diff) | |
swaynag: call swaynag_destroy on clean exit
And fix the fallout of the swaynag_destroy having evolved without
being tested:
* wl_display_disconnect was called too early
* `button_close` and `swaynag.details.button_details` needed to be
heap allocated, since they are added to swaynag.buttons, and all
entries of swaynag.buttons are freed in swaynag_destroy
* To keep things simpler, disconnect the lifetime of the 'Toggle details'
button text config setting from the button itself.
Diffstat (limited to 'swaynag/swaynag.c')
| -rw-r--r-- | swaynag/swaynag.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/swaynag/swaynag.c b/swaynag/swaynag.c index 5620155d..08e26127 100644 --- a/swaynag/swaynag.c +++ b/swaynag/swaynag.c @@ -483,10 +483,6 @@ void swaynag_run(struct swaynag *swaynag) { && wl_display_dispatch(swaynag->display) != -1) { // This is intentionally left blank } - - if (swaynag->display) { - wl_display_disconnect(swaynag->display); - } } void swaynag_destroy(struct swaynag *swaynag) { @@ -501,6 +497,7 @@ void swaynag_destroy(struct swaynag *swaynag) { } list_free(swaynag->buttons); free(swaynag->details.message); + free(swaynag->details.details_text); free(swaynag->details.button_up.text); free(swaynag->details.button_down.text); @@ -541,4 +538,8 @@ void swaynag_destroy(struct swaynag *swaynag) { if (swaynag->shm) { wl_shm_destroy(swaynag->shm); } + + if (swaynag->display) { + wl_display_disconnect(swaynag->display); + } } |
