X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=filebrowser%2Fpath.c;h=a68b7c1f9b10c28a3044191cc3fb0bafa35a80a2;hb=9141d53c4e3fe5f14a4940e2afb76f530f5a7a60;hp=5aac90c56ef33edbdc08fb1da9febe3ed664e407;hpb=b4c2ef53cf5a608a9488ed5cf53da908e9553d21;p=xboard.git diff --git a/filebrowser/path.c b/filebrowser/path.c index 5aac90c..a68b7c1 100644 --- a/filebrowser/path.c +++ b/filebrowser/path.c @@ -34,8 +34,8 @@ #include #include -#include "selfile.h" #include "xstat.h" +#include "selfile.h" #include #ifndef MAXPATHLEN @@ -46,14 +46,6 @@ extern uid_t getuid(); #endif /* def HAS_DIRENT_H */ -/* added missing prototypes */ -extern void SFtextChanged(); -extern int SFgetDir(SFDir *); -extern void SFdrawLists(int); -extern void SFdrawList(int, int); -extern void SFclearList(int, int); -extern void SFmotionList(Widget, int, XMotionEvent*); - typedef struct { char *name; char *dir; @@ -77,6 +69,8 @@ static SFLogin *SFlogins; static int SFtwiddle = 0; +void SFsetText(char *path); + int SFchdir(path) char *path; @@ -713,6 +707,10 @@ SFbuttonPressList(w, n, event) int n; XButtonPressedEvent *event; { + int dir = 0; + if(event->button == Button4) dir = -2; // kludge to indicate relative motion + if(event->button == Button5) dir = -1; + if(dir) SFvSliderMovedCallback(w, n, dir); else SFbuttonPressed = 1; } @@ -724,7 +722,9 @@ SFbuttonReleaseList(w, n, event) XButtonReleasedEvent *event; { SFDir *dir; + static int lastClick; + if(event->button == Button4 || event->button == Button5) return; // [HGM] mouse wheel does not select SFbuttonPressed = 0; if (SFcurrentInvert[n] != -1) { @@ -738,7 +738,9 @@ SFbuttonReleaseList(w, n, event) dir->entries[dir->vOrigin + SFcurrentInvert[n]].shown ); SFmotionList(w, n, (XMotionEvent *) event); + if(lastClick == 256*n + SFcurrentInvert[n]) SFstatus = SEL_FILE_OK; // [HGM] double click implies OK } + lastClick = 256*n + SFcurrentInvert[n]; } static int