From 43b4048b9c613e23ce80e2ce9c96cf30334fe931 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Wed, 1 May 2002 08:28:59 +0000 Subject: Fix file chooser bug - show() was calling deselect() when it shouldn't have been. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2153 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_File_Chooser.cxx | 7 ++----- src/Fl_File_Chooser.fl | 12 +++++------- src/Fl_File_Chooser2.cxx | 13 ++++++++----- 3 files changed, 15 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/Fl_File_Chooser.cxx b/src/Fl_File_Chooser.cxx index 42f1b035f..ca734ae1e 100644 --- a/src/Fl_File_Chooser.cxx +++ b/src/Fl_File_Chooser.cxx @@ -3,8 +3,7 @@ #include "../FL/Fl_File_Chooser.H" inline void Fl_File_Chooser::cb_window_i(Fl_Window*, void*) { - fileList->deselect(); -fileName->value(""); + fileName->value(directory_); window->hide(); } void Fl_File_Chooser::cb_window(Fl_Window* o, void* v) { @@ -92,8 +91,7 @@ void Fl_File_Chooser::cb_okButton(Fl_Return_Button* o, void* v) { } inline void Fl_File_Chooser::cb_Cancel_i(Fl_Button*, void*) { - fileList->deselect(); -fileName->value(""); + fileName->value(directory_); window->hide(); } void Fl_File_Chooser::cb_Cancel(Fl_Button* o, void* v) { @@ -213,7 +211,6 @@ const char * Fl_File_Chooser::label() { void Fl_File_Chooser::show() { window->hotspot(fileList); window->show(); -fileList->deselect(); } int Fl_File_Chooser::shown() { diff --git a/src/Fl_File_Chooser.fl b/src/Fl_File_Chooser.fl index 7625f4681..c4a055a94 100644 --- a/src/Fl_File_Chooser.fl +++ b/src/Fl_File_Chooser.fl @@ -10,8 +10,7 @@ class Fl_File_Chooser {open } { Fl_Window window { label {Pick a File} - callback {fileList->deselect(); -fileName->value(""); + callback {fileName->value(directory_); window->hide();} open private xywh {99 225 375 325} resizable code0 {if (title) window->label(title);} @@ -78,8 +77,7 @@ window->hide();} } Fl_Button {} { label Cancel - callback {fileList->deselect(); -fileName->value(""); + callback {fileName->value(directory_); window->hide();} private xywh {285 290 80 25} code0 {o->label(fl_cancel);} @@ -154,8 +152,8 @@ rescan();} {} Function {show()} {open return_type void } { code {window->hotspot(fileList); -window->show(); -fileList->deselect();} {} +window->show();} {selected + } } Function {shown()} {return_type int } { @@ -217,7 +215,7 @@ else } decl {static const char *filename_label;} {public } - decl {static const char *filter_label;} {selected public + decl {static const char *filter_label;} {public } } diff --git a/src/Fl_File_Chooser2.cxx b/src/Fl_File_Chooser2.cxx index a1093bf4a..e696837a4 100644 --- a/src/Fl_File_Chooser2.cxx +++ b/src/Fl_File_Chooser2.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_File_Chooser2.cxx,v 1.1.2.8 2002/04/30 21:50:16 easysw Exp $" +// "$Id: Fl_File_Chooser2.cxx,v 1.1.2.9 2002/05/01 08:28:59 easysw Exp $" // // More Fl_File_Chooser routines. // @@ -656,14 +656,13 @@ Fl_File_Chooser::fileNameCB() } } - fileList->deselect(0); - fileList->redraw(); - // If we have any matches, add them to the input field... if (first_line > 0 && min_match == max_match && max_match == (int)strlen(fileList->text(first_line))) { // This is the only possible match... + fileList->deselect(0); fileList->select(first_line); + fileList->redraw(); } else if (max_match > min_match && max_match != 100000) { @@ -683,6 +682,10 @@ Fl_File_Chooser::fileNameCB() fileName->position(filename - pathname + max_match, filename - pathname + min_match); } + else if (max_match == 0) { + fileList->deselect(0); + fileList->redraw(); + } // See if we need to enable the OK button... if ((type_ & CREATE || access(fileName->value(), 0) == 0) && @@ -695,5 +698,5 @@ Fl_File_Chooser::fileNameCB() // -// End of "$Id: Fl_File_Chooser2.cxx,v 1.1.2.8 2002/04/30 21:50:16 easysw Exp $". +// End of "$Id: Fl_File_Chooser2.cxx,v 1.1.2.9 2002/05/01 08:28:59 easysw Exp $". // -- cgit v1.2.3