From e5cdc9a55602778b821dfc101407367fa3df1ef3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net> Date: Fri, 29 Jan 2021 04:46:09 -0500 Subject: [PATCH] Ok, let's just never change cur if it's valid? Ok? Now the default bar is INT_MAX, so it always gets corrected when left as default. This is good. --- src/sbbs3/js_uifc.c | 1 + src/uifc/uifc32.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sbbs3/js_uifc.c b/src/sbbs3/js_uifc.c index 73859ad91d..f0883ef4a0 100644 --- a/src/sbbs3/js_uifc.c +++ b/src/sbbs3/js_uifc.c @@ -346,6 +346,7 @@ static JSBool js_list_ctx_constructor(JSContext *cx, uintN argc, jsval *arglist) JS_ReportError(cx, "JS_SetPrivate failed"); return JS_FALSE; } + p->bar = INT_MAX; js_SyncResolve(cx, obj, NULL, js_uifc_list_class_properties, NULL, NULL, 0); #ifdef BUILD_JSDOCS js_DescribeSyncObject(cx, obj, "Class used to retain UIFC list menu context", 317); diff --git a/src/uifc/uifc32.c b/src/uifc/uifc32.c index 2e1f9ac1af..53caa23d1d 100644 --- a/src/uifc/uifc32.c +++ b/src/uifc/uifc32.c @@ -927,11 +927,11 @@ int ulist(int mode, int left, int top, int width, int *cur, int *bar (*bar)=opts-1; if((*bar)<0) (*bar)=0; - if((*cur)<(*bar)) - (*cur)=(*bar); i=(*cur)-(*bar); if(i+(height-vbrdrsize-1)>=opts) { (*bar)=(height-vbrdrsize); + if (*bar > *cur) + *bar = *cur; i=(*cur)-(*bar)+1; } } -- GitLab