Mouse drag

what happens in particular when a drag event begins? or, another way, how does the component start to recieve all the mouse drag callbacks? is it an OS thing, or is there some way to get mouse movements to call drag callbacks based on something other than the holding-of-the-left-button?

i can use a bool flag to indicate whether i want to simulate dragging on a component, and call mouseDrag from within mouseMove based on that, but the events stop when the mouse leaves the component (mouseDrag obviously keeps getting called even when the component has been left)

It’s a bit OS-dependent, really - the OS has to capture the mouse and on linux at least I think that can only happen with a mouse button click.