def __find_children_under_mouse_after_leave(self):
previously_under_mouse = self.__children_under_mouse<EOL>if self.__mouse_grabber is not None:<EOL><INDENT>self.__children_under_mouse = {self.__mouse_grabber}<EOL><DEDENT>else:<EOL><INDENT>self.__children_under_mouse = set()<EOL><DEDENT>return Widget.__ChildrenUnderMouse(<EOL>previously_under_mouse, self.__children_under_mouse)<EOL>
Update the list of children under the mouse as the mouse leaves this 
widget.

You might think there would be no children under the mouse, if the 
mouse is not even over the parent widget, but that isn't necessarily 
true if the mouse is being grabbed.  Furthermore, it's important to 
keep updating the list of children under the mouse while the mouse is 
being grabbed, otherwise you can get weird artifacts when the mouse is 
finally released.