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_box.cpp | |
| parent | 547e538476a788dfeb5974f9b8ad29441d18980b (diff) | |
Widget deletion inside callbacks is now safe
Diffstat (limited to 'body/c_fl_box.cpp')
| -rw-r--r-- | body/c_fl_box.cpp | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/body/c_fl_box.cpp b/body/c_fl_box.cpp index e9c170d..8bedec1 100644 --- a/body/c_fl_box.cpp +++ b/body/c_fl_box.cpp @@ -6,6 +6,7 @@  #include <FL/Fl_Box.H>  #include "c_fl_box.h" +#include "c_fl.h" @@ -55,7 +56,11 @@ BOX new_fl_box2(int k, int x, int y, int w, int h, char * label) {  }  void free_fl_box(BOX b) { -    delete static_cast<My_Box*>(b); +    if (fl_inside_callback) { +        fl_delete_widget(b); +    } else { +        delete static_cast<My_Box*>(b); +    }  } | 
