def on_mouse_leave(self, x, y):
<EOL>children_under_mouse = self.__find_children_under_mouse_after_leave()<EOL>if self.propagate_mouse_events:<EOL><INDENT>for child in children_under_mouse.exited:<EOL><INDENT>child.dispatch_event('<STR_LIT>', x, y)<EOL><DEDENT><DEDENT>self.stop_event('<STR_LIT>')<EOL>self.__update_rollover_state('<STR_LIT>', x, y)<EOL>
React to the mouse crossing out of this widget.

The ``on_mouse_leave`` event is propagated to any children that are no 
longer under the mouse (i.e. that aren't grabbing the mouse) and an 
``on_rollover`` event is triggered to indicate that the widget's 
rollover state is now "base".