Apologies for my ignorance, as this is likely an error on my part.
I noticed UICamera.ProcessMouse() is still running logic, even when the mouse cursor is not visible. This leads to mouse over events firing and UICamera.selectedObject changing based on an invisible mouse cursor.
To give an example, I'm using Screen.showCursor and Screen.lockCursor to hide & lock the mouse when in gameplay, and to show & unlock the mouse in the pause menu. This works fine, but I also show a few in-game NGUI menus that are only navigable via keyboard/controller input, so the mouse remains locked & hidden invisibly in the center of the screen. However, if one of these menus appears in the center of the screen, the invisible mouse cursor will send events to the menu. This behavior seems strange, as I would not expect mouse processing when the mouse is not visible.
I'm running NGUI 3.8 on Unity 4.3 (stuck on an older version due to WiiU compatibility) but still developing for PC & Mac with the same project.
I should note that adding the following to the top of UICamera.ProcessMouse() seems to fix the issue, but I'd like to run it by the community first, thanks!
if (!Screen.showCursor) return;