Ethereal-cvs: [Ethereal-cvs] cvs commit: ethereal/gtk file_dlg.c filter_prefs.c filter_prefs.h
guy 2001/01/20 19:45:08 CST
Modified files:
gtk file_dlg.c filter_prefs.c filter_prefs.h
find_dlg.c main.c
Log:
In the process of destroying a filter editing dialog box, we get a
selection change event on the list of filters. Unfortunately, this can
happen after some other widgets in that dialog box have already been
destroyed - including some of the widgets that such a selection change
event can change.
This sometimes happened when "filter_prefs_delete()" hadn't been called,
so the mechanism we had been using, with a Boolean datum attached to the
dialog box, set in "filter_prefs_delete()" before we actually destroy
the dialog box, wasn't sufficient to keep that from happening.
Attach to the top-level window data items containing pointers to the
widgets changed when a filter is selected from the list, give each of
those widgets their own destroy callbacks, clear the pointer attached to
the top-level widget when the widget is destroyed, and don't do anything
to the widget when a filter is selected from the list if the pointer for
that widget is null, as that means the widget's been destroyed and we
*can't* do anything to it.
Not all filter editing dialogs created on behalf of a "Filter:" button
next to a text entry box should, when you click "OK", activate the text
entry box; if the text entry box is part of a dialog box with multiple
widgets, the user might not have filled in all of the items in that
dialog box, so you shouldn't activate it for them. Add a mechanism by
which, when creating a filter editing dialog box, you can specify
whether the "OK" button should just fill in the text entry box or should
fill it in and also activate it.
Revision Changes Path
1.34 +7 -3 ethereal/gtk/file_dlg.c
1.21 +218 -74 ethereal/gtk/filter_prefs.c
1.8 +12 -2 ethereal/gtk/filter_prefs.h
1.17 +5 -2 ethereal/gtk/find_dlg.c
1.172 +6 -4 ethereal/gtk/main.c