Includes how mouse events are dispatched which now handles deduplication and ensures `down` event won't fine `move` as well, which was causing exact and slow seeks in quick succession when clicking on timeline without moving the mouse, causing glitchy looking seeking.
ref #496
`mbtn_left` and `wheel` events are now only fired on a `cursor.on_{event}` object, which resets at the beginning of each frame, so elements need to bind these listeners in their render functions. These properties are overwritable which allows elements to take over cursor event handling from their parents if necessary.
* fix: constant width for hovered time
* fix: respect the trimmed time width in the buffered time indicator
* perf: cache timestamp substitutes for width calculation
Co-authored-by: tomasklaen <tomas.klaen@gmail.com>
---------
Co-authored-by: tomasklaen <tomas.klaen@gmail.com>
`destination_time` accepts one of `total`, `playtime-remaining` (scaled by the current speed), `time-remaining` (remaining length of file).
`total_time` is deprecated, but still works as expected.
I don't like this solution, but anything cleaner would probably require converting chapter indicators into individual elements and than managing/updating their positions and sizes in relation to growing timeline, which seems like a lot more work and code, so this'll have to suffice.
closes#370