X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gtk%2Fxboard.c;h=dbcc9e5e842783f269c503cd3008cdab91d8827e;hb=ba12e63149a003b88b8525d6eb50d48539c660b6;hp=ef35f2a0794a769c18c2d213d885de27544c052e;hpb=dd94bfa89dd6dd1238c3f7063e532ab3ed2d0858;p=xboard.git diff --git a/gtk/xboard.c b/gtk/xboard.c index ef35f2a..dbcc9e5 100644 --- a/gtk/xboard.c +++ b/gtk/xboard.c @@ -1930,7 +1930,7 @@ void MoveTypeInProc(eventkey) buf[0]=eventkey->keyval; buf[1]='\0'; - if (eventkey->keyval > 32 && eventkey->keyval < 256) + if (eventkey->keyval > 32 && eventkey->keyval < 256 || *buf == 27) ConsoleAutoPopUp (buf); } @@ -2319,11 +2319,14 @@ void FileNamePopUpWrapper(label, def, filter, proc, pathFlag, openMode, name, fp char *cp; char curDir[MSG_SIZ]; + StartDir(filter, NULL); // change to start directory for this file type + if(def && *def && def[strlen(def)-1] == '/') { getcwd(curDir, MSG_SIZ); chdir(def); } + /* make a copy of the filter string, so that strtok can work with it*/ cp = strdup(filter); @@ -2396,8 +2399,10 @@ void FileNamePopUpWrapper(label, def, filter, proc, pathFlag, openMode, name, fp ASSIGN(*name, filename); ScheduleDelayedEvent(DelayedLoad, 50); } + StartDir(filter, filename); g_free (filename); - }; + } + else StartDir(filter, ""); gtk_widget_destroy (dialog); ModeHighlight();