Skip to content

Commit

Permalink
STR#2052 fixed. Also added documentation to FL_File_Input explaining …
Browse files Browse the repository at this point in the history
…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
  • Loading branch information
fab672000 committed Oct 5, 2008
1 parent 908a2b5 commit 30800d3
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
11 changes: 9 additions & 2 deletions FL/Fl_File_Input.H
Expand Up @@ -40,8 +40,15 @@
A navigation bar located above the input field allows the user to
navigate upward in the directory tree.
\image html Fl_File_Input.gif
You may want to handle FL_WHEN_CHANGED events for tracking text changes
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
{
Expand Down
2 changes: 1 addition & 1 deletion src/Fl_File_Input.cxx
Expand Up @@ -278,7 +278,7 @@ Fl_File_Input::handle_button(int event) // I - Event

// Then do the callbacks, if necessary...
set_changed();
if (when() & FL_WHEN_CHANGED) do_callback();
if (when() & (FL_WHEN_CHANGED|FL_WHEN_RELEASE) ) do_callback();
}

return 1;
Expand Down

0 comments on commit 30800d3

Please sign in to comment.