fix inaccurate scroll bar
This commit is contained in:
parent
35483ccd84
commit
e1db6d59cd
1 changed files with 20 additions and 12 deletions
32
src/m_menu.c
32
src/m_menu.c
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue