Our C++ plug-in has a complicated way of handling mouse interaction, enabling our users to quickly fair hull shapes without developing RSI/wrist strain. Unfortunately, with the new CRhinoMouseCallback, this needs to be re-implemented from scratch. (it’s probably too much to ask to revert to the old CRhinoMouseCallback, right?)
What I have noticed while trying to figure out the behavior of the new CRhinoMouseCallback is the following:
Click-down:
OnBeginMouseDown
OnMouseDown
Click-up:
OnBeginMouseUp
OnMouseUp
OnBeginMouseMove
OnMouseMove
I have a trackball, so I am certain that the mouse is not moving after the button goes up.
Also, in the first click-down after I change the mouse cursor to another viewport
Click-down:
OnBeginMouseDown
OnMouseDown
OnBeginMouseMove
OnMouseMove
Click-up:
OnBeginMouseUp
OnMouseUp
OnBeginMouseMove
OnMouseMove
The next click-down/click-up in the same viewport does not have extra mouse-move after mouse down, only after mouse-up.
So, more MouseMove events are fired than are actually happening: always after mouse up, and the first time after mouse down when the mouse has entered another viewport.