diff options
author | Jedidiah Barber <contact@jedbarber.id.au> | 2025-02-06 21:55:19 +1300 |
---|---|---|
committer | Jedidiah Barber <contact@jedbarber.id.au> | 2025-02-06 21:55:19 +1300 |
commit | ee967448bae4733aec70ba128062bc3357a2f0df (patch) | |
tree | c6f2fb273132be93a1a067bec854fa13923ea792 /body/c_fl_progress.cpp | |
parent | 547e538476a788dfeb5974f9b8ad29441d18980b (diff) |
Widget deletion inside callbacks is now safe
Diffstat (limited to 'body/c_fl_progress.cpp')
-rw-r--r-- | body/c_fl_progress.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/body/c_fl_progress.cpp b/body/c_fl_progress.cpp index 21a7a2d..7b13a48 100644 --- a/body/c_fl_progress.cpp +++ b/body/c_fl_progress.cpp @@ -6,6 +6,7 @@ #include <FL/Fl_Progress.H> #include "c_fl_progress.h" +#include "c_fl.h" @@ -50,7 +51,11 @@ PROGRESS new_fl_progress(int x, int y, int w, int h, char* label) { } void free_fl_progress(PROGRESS p) { - delete static_cast<My_Progress*>(p); + if (fl_inside_callback) { + fl_delete_widget(p); + } else { + delete static_cast<My_Progress*>(p); + } } |