def on_mouse_press(self, x, y, button, modifiers):
<EOL>children_under_mouse = self.__find_children_under_mouse(x, y)<EOL>if self.propagate_mouse_events:<EOL><INDENT>for child in children_under_mouse.current:<EOL><INDENT>child.dispatch_event('<STR_LIT>', x, y, button, modifiers)<EOL><DEDENT><DEDENT>self.start_event('<STR_LIT>')<EOL>if self.grab_mouse_on_click:<EOL><INDENT>self._grab_mouse()<EOL><DEDENT>self.__update_rollover_state('<STR_LIT>', x, y)<EOL>
React when the mouse is pressed on this widget.

The ``on_mouse_press` event is propagated to any children under the 
mouse, an ``on_mouse_hold`` event is started, and an ``on_rollover`` 
event is fired to indicate that the widget's rollover state is now 
"down".