fix inaccurate scroll bar

This commit is contained in:
minenice55 2025-09-07 21:52:59 -04:00
parent 35483ccd84
commit e1db6d59cd

View file

@ -7060,11 +7060,11 @@ void MD_DrawGridCssSelector(void)
INT32 dy = (SKINGRIDHEIGHT * 18); INT32 dy = (SKINGRIDHEIGHT * 18);
INT32 scrx = 4; //2 is added to make the final "thickness" INT32 scrx = 4; //2 is added to make the final "thickness"
int listlen; INT32 columncount;
int barlen; INT32 barlen;
int barpos; INT32 barpos;
listlen = (numskins)/SKINGRIDWIDTH; columncount = ((numskins - 1) / SKINGRIDWIDTH);
//draw BG //draw BG
V_DrawFill(x, y, dx, dy, 244); V_DrawFill(x, y, dx, dy, 244);
@ -7080,16 +7080,24 @@ void MD_DrawGridCssSelector(void)
V_DrawFill(x, y, scrx, dy, 15); V_DrawFill(x, y, scrx, dy, 15);
//draw scroll bar bar //draw scroll bar bar
if ((numskins) % SKINGRIDWIDTH > 0) // if ((numskins) % SKINGRIDWIDTH > 0)
listlen++; // columncount++;
if (listlen - SKINGRIDHEIGHT > 0) // if (columncount - SKINGRIDHEIGHT > 0)
barlen = dy/(listlen-SKINGRIDHEIGHT + 1); // barlen = dy/(columncount-SKINGRIDHEIGHT + 1);
else // else
barlen = dy; // barlen = dy;
barpos = barlen * gridcss_skinydrag; // barpos = barlen * gridcss_skinydrag;
if (gridcss_skinydrag >= listlen - SKINGRIDHEIGHT) // if (gridcss_skinydrag >= columncount - SKINGRIDHEIGHT)
// barlen = dy - barpos;
barlen = dy * SKINGRIDHEIGHT / columncount;
barpos = dy * gridcss_skinydrag / columncount;
if (barpos + barlen > dy)
{
barlen = dy - barpos; barlen = dy - barpos;
}
V_DrawFill(x, y + barpos, scrx, barlen, 5); V_DrawFill(x, y + barpos, scrx, barlen, 5);
V_DrawFill(x, y + barpos, 1, barlen, 7); V_DrawFill(x, y + barpos, 1, barlen, 7);