SurfaceGuis: InputEnded doesn't register mouse leaving


I recently made a SurfaceGui terminal system that hides the mouse cursor and moves a cursor on the terminal monitor, using InputBegan to detect when the mouse enters the monitor and InputEnded to detect when it leaves. InputBegan works as intended, and the cursor icon is hidden. However, when the player moves the cursor out of the terminal’s monitor, InputEnded doesn’t trigger and the cursor doesn’t re-appear. This seems to happen every time I test it.

Here is my script; note that InputBegan and InputChanged work, however InputEnded never triggers:

Here’s what happens when I move the mouse outside of the terminal’s monitor (it would have been longer, but grr these forums don’t support mp4):


Finally, here’s the place file in case you want to repro or see if I’ve done anything wrong (the terminal controller script is TerminalController, in StarterGui):

Terminal v2.rbxl (23.3 KB)


We have a fix for this shipping either this week or next.