#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


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 smallstepforman, 17 months ago

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.

comment:2 by diver, 17 months ago

Resolution: not reproducible
Status: newclosed
Note: See TracTickets for help on using tickets.