mirror of https://github.com/fltk/fltk
Remove FL_AUTO_DELETE_EVENT feature
It's not ripe for release yet and possibly not even needed
according to pyFLTK maintainers.
Added: 8cffbd6941
This commit is contained in:
parent
c0dba15e4b
commit
5cafae4a3a
|
@ -407,15 +407,8 @@ enum Fl_Event { // events
|
||||||
/** A zoom event (ctrl/+/-/0/ or cmd/+/-/0/) was processed.
|
/** A zoom event (ctrl/+/-/0/ or cmd/+/-/0/) was processed.
|
||||||
Use Fl::add_handler() to be notified of this event.
|
Use Fl::add_handler() to be notified of this event.
|
||||||
*/
|
*/
|
||||||
FL_ZOOM_EVENT = 27,
|
FL_ZOOM_EVENT = 27
|
||||||
/** This event is sent if the parent widget is deleted and the parent is about
|
// DEV NOTE: Keep this list in sync with FL/names.h
|
||||||
to delete this widget as well. Returning the default value 0 will give the
|
|
||||||
parent permission to call the destructor of this widget. Returning 1 will
|
|
||||||
preserve this widget, but still remove it from the widget hierarchy.
|
|
||||||
\see Fl_Group::clear()
|
|
||||||
*/
|
|
||||||
FL_AUTO_DELETE_EVENT = 28
|
|
||||||
// DEV NOTE: Keep this list in sync with FL/names.h
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/** \name When Conditions */
|
/** \name When Conditions */
|
||||||
|
|
|
@ -73,10 +73,9 @@ const char * const fl_eventnames[] =
|
||||||
"FL_FULLSCREEN",
|
"FL_FULLSCREEN",
|
||||||
"FL_ZOOM_GESTURE",
|
"FL_ZOOM_GESTURE",
|
||||||
"FL_ZOOM_EVENT",
|
"FL_ZOOM_EVENT",
|
||||||
"FL_AUTO_DELETE_EVENT",
|
"FL_EVENT_28", // not yet defined, just in case it /will/ be defined ...
|
||||||
"FL_EVENT_29", // not yet defined, just in case it /will/ be defined ...
|
"FL_EVENT_29", // not yet defined, just in case it /will/ be defined ...
|
||||||
"FL_EVENT_30", // not yet defined, just in case it /will/ be defined ...
|
"FL_EVENT_30" // not yet defined, just in case it /will/ be defined ...
|
||||||
"FL_EVENT_31" // not yet defined, just in case it /will/ be defined ...
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -376,18 +376,7 @@ Fl_Group::Fl_Group(int X,int Y,int W,int H,const char *l)
|
||||||
Fl::pushed() widget these are set to sensible values (other widgets
|
Fl::pushed() widget these are set to sensible values (other widgets
|
||||||
or the Fl_Group widget itself).
|
or the Fl_Group widget itself).
|
||||||
|
|
||||||
\note FLTK's auto-delete feature efficiently manages widget hierarchies in
|
\see Fl_Group::remove(int), Fl_Group::delete_child(int), Fl_Group::~Fl_Group()
|
||||||
C++ applications by automatically cleaning up. However, this feature can
|
|
||||||
cause issues when FLTK is used with reference-counting languages like Python,
|
|
||||||
where automatic deletion might interfere with reference counting. To address
|
|
||||||
this, auto-delete can be disabled for individual widgets. When
|
|
||||||
\ref Fl_Group::clear() is called, it sends an \ref FL_AUTO_DELETE event to
|
|
||||||
each widget. If a widget returns 1 in response to this event, it will not
|
|
||||||
be deleted. In a Python wrapper, this behavior would typically involve
|
|
||||||
decrementing the widget's reference count instead of deleting it.
|
|
||||||
|
|
||||||
\see Fl_Group::remove(int), Fl_Group::delete_child(int),
|
|
||||||
Fl_Group::~Fl_Group()
|
|
||||||
*/
|
*/
|
||||||
void Fl_Group::clear() {
|
void Fl_Group::clear() {
|
||||||
savedfocus_ = 0;
|
savedfocus_ = 0;
|
||||||
|
@ -430,8 +419,7 @@ void Fl_Group::clear() {
|
||||||
} else { // slow removal
|
} else { // slow removal
|
||||||
remove(idx);
|
remove(idx);
|
||||||
}
|
}
|
||||||
if (w->handle(FL_AUTO_DELETE_EVENT)==0)
|
delete w; // delete the child
|
||||||
delete w; // delete the child
|
|
||||||
} else { // should never happen
|
} else { // should never happen
|
||||||
remove(idx); // remove it anyway
|
remove(idx); // remove it anyway
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue