In a CView in one of our plug-ins, we change the cursor based on certain conditions in the onMouseMoved() function. (Some of those cursors use custom bitmaps, but that is not relevant to this issue as far as I can determine.)
We have seen that on the PC, for some reason, the cursor switches back to the default (arrow) cursor unexpectedly. Our software still thinks that it is using the cursor that we set (via the CFrame’s setCursor() function), so it doesn’t bother calling setCursor() gain, and so the cursor remains as the system cursor after that point. On some systems, this happens quickly, on others it takes more movements of the mouse before it happens. It won’t restore to our cursor until moving the mouse off the CView and back on (because of code that handles entering and exiting the view).
Because of this problem, on the PC only, we now always call setCursor() to set the cursor when onMouseMoved() is called on the CView. However, what happens now is that whenever the mouse cursor switches to the system cursor, we immediately set it back again. For some users this makes the mouse cursor repeatedly flash back and forth between the custom cursor and the system cursor, over and over again as the mouse is moved over the graph.
Unfortunately for me, trying to debug the problem, it does not happen very often. I only see it flash every once in a while. But even wore, if the transport is running the user moves the mouse and they have a system on which is flashes back and forth often, it leads to a CPU overload (or something similar) that causes audio drop-outs and glitches, which is NOT acceptable (obviously)!
I have not been able to find any reason why the arrow cursor keeps being set for the window. I do not know if it is a system difference, a graphics card/driver difference, something in Cubase, or something in the VSTGUI SDK that is resetting the cursor shape. And since I don’t KNOW what the cursor shape is, I cannot tell that it has happened, and thus cannot trace when it happens to see who caused it to happen.
Anyone know what might cause the cursor to change shapes like that without our own code causing it? Anyone know how we might fix it???