summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FL/Fl_File_Input.H11
-rw-r--r--src/Fl_File_Input.cxx2
2 files changed, 10 insertions, 3 deletions
diff --git a/FL/Fl_File_Input.H b/FL/Fl_File_Input.H
index 8e32a9e67..fcf3fdaf8 100644
--- a/FL/Fl_File_Input.H
+++ b/FL/Fl_File_Input.H
@@ -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
{
diff --git a/src/Fl_File_Input.cxx b/src/Fl_File_Input.cxx
index 7e96ecdd7..d5a4a698b 100644
--- a/src/Fl_File_Input.cxx
+++ b/src/Fl_File_Input.cxx
@@ -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;