mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-14 19:31:14 +00:00
that finishes on its own The hover delay only finished while the mouse was moving: a pointer resting on a control produces no events, so nothing redrew the canvas and the wait never reached its end - the tooltip appeared on the next pixel of movement instead. It asked for its frames with schedule_extra_frame(), which only arranges a timer whose event an idle event is assumed to follow, and on_idle renders nothing unless the canvas was already dirty when it ran. The wait and the animations now both use request_extra_frame(), which ends on_idle with evt.RequestMore() and so obliges wx to deliver the next idle; it is what 3DBed's fade uses. Asking for frames as fast as they come is safe now that which frame is drawn comes from the clock rather than from the frame count - a redraw that arrives early draws the same frame again. Nothing explains a control while the control is being used, so no tooltip appears while a slider is being dragged, a value typed into one, a combo open or a layer card dragged. The pointer sits on the very thing being edited, so a tooltip there covered the model exactly while the user was watching it change. The full wait comes back afterwards rather than the short one: having just let go of a slider is not a reason to be shown a picture of it. AnimatedTexture::texture_id() loses its time-to-next-frame out-parameter, which nothing asks for any more.