X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gtk%2Fxboard.c;h=b2c080c33a14764eb9cfd90ef77ab0827ea258dd;hb=7b721be1faca2a8524f56ab9e414d0bb97215765;hp=8a2b8871371b68e5759765479aa8117f3eb86ff5;hpb=f59115efbe1e03f7c4808d4f8c722c1e86b37c3d;p=xboard.git diff --git a/gtk/xboard.c b/gtk/xboard.c index 8a2b887..b2c080c 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); } @@ -2317,6 +2317,9 @@ void FileNamePopUpWrapper(label, def, filter, proc, pathFlag, openMode, name, fp char fileext[10] = ""; char *result = NULL; char *cp; + char curDir[MSG_SIZ]; + + StartDir(filter, NULL); // change to start directory for this file type /* make a copy of the filter string, so that strtok can work with it*/ cp = strdup(filter); @@ -2390,12 +2393,16 @@ 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(); + if(def && *def && def[strlen(def)-1] == '/') chdir(curDir); + free(cp); return;