GuiObject.MouseLeave not firing as expected [Only occurring with the input device being mouse]

While listening onto MouseLeave for any GuiObject, the event is not fired for any current GuiObjects your mouse is considered entered with Mouse input type after toggling a screengui enable state to false. Meanwhile, doing the same operation with your input device being mobile, the MouseLeave event is fired.

Input Device: Mouse, with the device being used Computer


Repro steps:

  1. Create, or have a screen gui with a visible GuiObject inside of it
    {E1D86120-D477-465B-AE6C-0BF8826F31AF}

  2. Listen onto the GuiObject’s MouseLeave signal

local parent = script.Parent
local screenGui = parent.Parent

parent.MouseEnter:Connect(function()
	print("Mouse has entered the ui")
end)

parent.MouseLeave:Connect(function()
	print("Mouse has left the ui")
end)

parent.Activated:Connect(function()
	screenGui.Enabled = false
end)
  1. Press f5 (play) in Studio, or RobloxPlayer and check the displayed inputs in output console as MouseLeave is not fired as one might expect

Small 7 second clip of this happening on Computer, and then simulated Mobile device:
Did not include RobloxPlayer results as it is redundant, and the same result

[Computer] https://gyazo.com/fecba2f5d4cb53d6d35cb7255d5bcb59.mp4
[Simulated Touch Device] https://gyazo.com/889776c4a1ccf8ff1383be4303d6c03f.mp4

Expected behavior


Similar to how it behaves when you turn the visibility state off or when the input type is touch/mobile, when you toggle the GuiObjects visible state to false then move your mouse, the MouseLeave event is fired.

The event firing, if the mouse was previously inside of the GuiObject before the ScreenGui’s enabled state being set false.