TMPro input field scroll speed wonky

When I make a multiline new line input field, regardless of whether I do or don’t add a scollbar, scrolling speed changes depending on the size of the content. It doesn’t change linearly, it actually seems to change depending on what the size of the scrollbar would be, inversely proportional to it. I can’t find any other discussion on this issue so I’m not sure if it’s just me, but, just try it, and tell me a fix if you find one please. Having the different scrolling speed is really annoying and I can’t see any way to fix it

Looked into the code myself, and I think I found the issue.
The code uses the following factor to try and make scrolling proportional to line count: (1f/m_TextComponent.textInfo.lineCount)
This is because scrolling (seems) to be relative, not absolute:a value between 0 and 1, that scrolls you that far down. However, this factor doesn’t work, unless your viewport size fits exactly one line. If it doesn’t, then the number of display lines messes it up. Let’s just imagine that we set the scrolling speed so that it should equal 1 line exactly per 1 regular scroll down. Let’s imagine we’re displaying 10 lines out of 20 lines. It should take 10 scrolls to reach the bottom. However, due to however the current viewport size is factored into the percent to scroll, that makes it have around 50% more scrolling speed if you do 10 display lines and 40 total lines. However, in my testing, that proportion between those seems to be the differential factor, as when I tried displaying 20 lines out of 40 lines, it almost exactly matched 10/20. I can’t quite identify a fix yet but I’m working on at least a passable one because this is annoying me.

WIth a little further testing, I can approximate that the scroll speed difference is seemingly proportional to (displayed lines-total lines)/(total lines) (I can’t seem to figure out if there’s a factor of “times displayed lines” right now)

With even more testing, I have managed to get nearly perfect scrolling (though there appears to be a slight variance.) I did this by changing the “OnScroll” function: replacing
m_ScrollPosition += (1f / m_TextComponent.textInfo.lineCount) * scrollDirection * m_ScrollSensitivity;
with
m_ScrollPosition += scrollDirection * m_ScrollSensitivity /((m_TextComponent.preferredHeight-m_TextViewport.rect.height));