Our application (NSOpenGLView) has two modes: one window and one full-screen (full-screen mode behaves like the new full-screen OS X Lion function, so it takes up all the space, hides the dock, and the menu becomes visible if you drag the mouse up as well as the location of the dock).
In windowed mode, the standard cursor is used, in "fulscreen" mode we do not display the system cursor, so when switching modes, we simply switch
[NSCursor hide] [NSCursor unhide]
because in "full screen" we want to display our custom cursor in OpenGL.
Everything is OK, except for the part if the user moves up, a menu appears or above the place where the dock is located, and the dock appears, than the system automatically displays a cursor that is in one place, because the user can choose from the top menu, but it is also a problem, because the cursor is not hidden, and both opengl and the system cursor are displayed.
We tried various notification and delegation methods to catch this situation and adjust the visibility of the cursor, but without success.
source share