X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=filebrowser%2Fdraw.c;h=abab957979d3c642164ace9e0ef43a5bd4557dc8;hb=e9a0808a5551217eb4fd29d949f3c7672545c168;hp=b21d1700fe5ab6fe5899226b3adf3a2466748897;hpb=b4c2ef53cf5a608a9488ed5cf53da908e9553d21;p=xboard.git diff --git a/filebrowser/draw.c b/filebrowser/draw.c index b21d170..abab957 100644 --- a/filebrowser/draw.c +++ b/filebrowser/draw.c @@ -505,7 +505,7 @@ SFscrollTimer(p, id) int save; int n; - n = (int) p; + n = (int)(intptr_t) p; dir = &(SFdirs[SFdirPtr + n]); save = dir->vOrigin; @@ -535,7 +535,7 @@ SFscrollTimer(p, id) if (SFbuttonPressed) { SFscrollTimerId = XtAppAddTimeOut(SFapp, - SFscrollTimerInterval(), SFscrollTimer, (XtPointer) n); + SFscrollTimerInterval(), SFscrollTimer, (XtPointer)(intptr_t) n); } } @@ -576,7 +576,7 @@ SFnewInvertEntry(n, event) SFscrollTimerAdded = 1; SFscrollTimerId = XtAppAddTimeOut(SFapp, SFscrollTimerInterval(), SFscrollTimer, - (XtPointer) n); + (XtPointer)(intptr_t) n); } } @@ -655,7 +655,10 @@ SFvSliderMovedCallback(w, n, new) dir = &(SFdirs[SFdirPtr + n]); + old = dir->vOrigin; + if(new == -1) new = old + 1; else if(new == -2) new = old - 1; // [HGM] indicates scroll direction on mousewheel event + if(new < 0 || new > dir->nEntries - SFlistSize) return; dir->vOrigin = new; if (old == new) {