STR#2052 fixed. Also added documentation to FL_File_Input explaining what events the user can handle and also an application note explaining how to avoid potential callback reentrant calls.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6386 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Fabien Costantini 2008-10-05 23:10:33 +00:00
parent 908a2b5515
commit 30800d35d4
2 changed files with 10 additions and 3 deletions

View File

@ -40,8 +40,15 @@
A navigation bar located above the input field allows the user to A navigation bar located above the input field allows the user to
navigate upward in the directory tree. navigate upward in the directory tree.
You may want to handle FL_WHEN_CHANGED events for tracking text changes
\image html Fl_File_Input.gif and also FL_WHEN_RELEASE for button release when changing to parent dir.
FL_WHEN_RELEASE callback won't be called if the directory clicked
is the same that the current one.
<P align=CENTER> \image html Fl_File_Input.gif </P>
\note As all Fl_Input derived objects, Fl_File_Input may call its callback
when loosing focus (see FL_UNFOCUS) to update its state like its cursor shape.
One resulting side effect is that you should call clear_changed() early in your callback
to avoid reentrant calls if you plan to show another window or dialog box in the callback.
*/ */
class FL_EXPORT Fl_File_Input : public Fl_Input class FL_EXPORT Fl_File_Input : public Fl_Input
{ {

View File

@ -278,7 +278,7 @@ Fl_File_Input::handle_button(int event) // I - Event
// Then do the callbacks, if necessary... // Then do the callbacks, if necessary...
set_changed(); set_changed();
if (when() & FL_WHEN_CHANGED) do_callback(); if (when() & (FL_WHEN_CHANGED|FL_WHEN_RELEASE) ) do_callback();
} }
return 1; return 1;