When the mouse goes from a frame directly to a location directly outside the window (say the frame butts up against the window edge) and through no other parts of gekco, the frame does not get an NS_MOUSE_EXIT event. This can be easily seen in apprunner by mousing over a grippy on a toolbar and then moving the mouse directly to the left outside the window. The grippy will remain highlighted. If you repeat this, but instead move the mouse somewhere else inside gecko's space, it works correctly and the grippy unhighlights.
I'm really not at all suprised. We'll have to see which systems even give us these events and then set up timers and such for those that don't. I know Windows doesn't have a notification for leaving the Window either. I probably won't get to this for a little while.
*** Bug 4052 has been marked as a duplicate of this bug. ***
Summary: frames don't get NS_MOUSE_EXIT events when mouse leaves window → [PP] frames don't get NS_MOUSE_EXIT events when mouse leaves window
Actually this works on Windows now so this would have to be a platform parity issue, too.
Actually Pink, can you take a look at this? Getting this to work on Windows, due to the lack of a window mouseout message pretty much amounts to settting a timer and checking for window containment and simulating the event if necessary. Gross but true. The same would have to be done on the Mac but its Mac widget code. Or maybe it should be Pierre's or something, I don't know. But I don't think it'll be me based on time/buglist/its in Mac code.
I still this on windows for mouse moves/exits out of the window. I also see this problem when I drag the mouse very quickly into the content window from a toolbar button. The problem on windows is that it gets to the GenerateMouseEnterExit method and even executes the exit part of the code. I think the issue is that no NEW call to SetContentState occurs so therefore the frame with the current hover "state" is never asked to reset itself back to a "normal" state. So how do we get the frame with the current hover state to get set back? I have this exact same problem for drag-exit events (mostly because it is a direct copy of the mouse code
Status: ASSIGNED → RESOLVED
Last Resolved: 20 years ago
Resolution: --- → FIXED
Checked in the fix for this last week. - rod
Appears to be fixt. Marking verified Build ID: 1999070708
You need to log in before you can comment on or make changes to this bug.