summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES2
-rw-r--r--test/editor.cxx11
2 files changed, 10 insertions, 3 deletions
diff --git a/CHANGES b/CHANGES
index 2b061a2fe..1b88620fb 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,7 @@
CHANGES IN FLTK 1.3.0
+ - Fixed crash in test/Editor when freeing buffer
+ too soon (STR #2294)
- Fixed Fl_Preferences Cygwin wide character bug (STR #2164)
- Fixed sorting in Fl_Browser - last item would not
be sorted (STR #2300)
diff --git a/test/editor.cxx b/test/editor.cxx
index a361295df..12cc4ccb9 100644
--- a/test/editor.cxx
+++ b/test/editor.cxx
@@ -609,14 +609,19 @@ void paste_cb(Fl_Widget*, void* v) {
int num_windows = 0;
void close_cb(Fl_Widget*, void* v) {
- Fl_Window* w = (Fl_Window*)v;
- if (num_windows == 1 && !check_save()) {
- return;
+ EditorWindow* w = (EditorWindow*)v;
+
+ if (num_windows == 1) {
+ if (!check_save())
+ return;
}
w->hide();
+ w->editor->buffer(0);
+ textbuf->remove_modify_callback(style_update, w->editor);
textbuf->remove_modify_callback(changed_cb, w);
Fl::delete_widget(w);
+
num_windows--;
if (!num_windows) exit(0);
}