def on_mouse_motion(self, x, y, dx, dy):
children_under_mouse = self.__find_children_under_mouse(x, y)<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>for child in children_under_mouse.entered:<EOL><INDENT>child.dispatch_event('<STR_LIT>', x, y)<EOL><DEDENT>for child in children_under_mouse.current:<EOL><INDENT>child.dispatch_event('<STR_LIT>', x, y, dx, dy)<EOL><DEDENT><DEDENT>
React to the mouse moving within this widget.

The ``on_mouse_motion`` event is propagated to any children that 
remained under the mouse, an ``on_mouse_enter`` event is triggered in 
any children that just came under the mouse, and an ``on_mouse_leave`` 
event is triggered in any children that were previously under the mouse 
but no longer are.