Opened 3 years ago
Closed 3 years ago
#17079 closed bug (not reproducible)
BScrollBar MouseMoved() to left doesn't reach minimum range
Reported by: | smallstepforman | Owned by: | nobody |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | Kits/Interface Kit | Version: | R1/beta2 |
Keywords: | BScrollBar | Cc: | |
Blocked By: | Blocking: | ||
Platform: | All |
Description
Use the BScrollBar::SetRange(min, max) function to set a range of (0, 10'000.0f). Use the mouse to move the scroll bar anywhere to the right, then try to bring it as far to the left as possible. The ScrollTo(BPoint) hook function will not go left to range_min, instead it will be at say 21 or similar. Only the arrow icons can bring the range down to 1. From a usability point of view, the user wants to scroll as far left as possible using the thumb but that is not happening - it is bad interface design to force the user once they finish moving the thumb to then switch to the arrows.
When a range is set to (0, 100) then it works as intended. Any larger factor for max range no longer allows scroll bar to go left. Limiting the range to only 100 steps causes problems for extra wide views (eg. a timeline for a video player)
BScrollBar::MouseMoved() has suspect offset in SetValue(_ValueFor(where + fPrivateData->fClickOffset)); It needs to also cater for left edge scenario.
Change History (2)
comment:1 by , 3 years ago
comment:2 by , 3 years ago
Resolution: | → not reproducible |
---|---|
Status: | new → closed |
Great, a Heisenbug, now it appears to work, regardless of what value I set (100, 200, 1000, 10000 for range max. But last week, it was stopping on 21 when SetRange(0,10000.0f) was used. Close for now, and if it reappears I will reopen the ticket.