Sorry, I was inaccurate in my explanation. The problem requires that the OverrideCursor() is called from a context menu callback function to NOT to work. (I only thought of it as being a mouse operation as I used the mouse right clicking to open the context menu.)
Anyway, my fix does not appear to work on Linux as SetMouseCursor can not be called in static member funtion OverrideCursor without an object.
The reason the DoCursorShape does not work in this context is probably because the DoCursorShape requires an existing "mouseCtrl" which is not true in this case. So, I guess a proper fix would require a way to bypass a nonexistent mouseCtrl for an overridden mouse cursor. Or what do you think Mirek?
// Tom
I think you should provide a testcase to demonstrate the problem
(if there is no mouseCtrl, it means that mouse cursor is over non-U++ window, so U++ is not responsible for its shape... or demonstrate with testcase why it should be....