MCPcopy
hub / github.com/Textualize/textual / _handle_mouse_move

Method _handle_mouse_move

src/textual/screen.py:1630–1678  ·  view source on GitHub ↗
(self, event: events.MouseMove)

Source from the content-addressed store, hash-verified

1628 tooltip.update(tooltip_content)
1629
1630 def _handle_mouse_move(self, event: events.MouseMove) -> None:
1631 hover_widget: Widget | None = None
1632 try:
1633 if self.app.mouse_captured:
1634 widget = self.app.mouse_captured
1635 region = self.find_widget(widget).region
1636 else:
1637 (widget, region), hover = self.get_hover_widgets_at(event.x, event.y)
1638 if hover is not None:
1639 hover_widget = hover[0]
1640 except errors.NoWidget:
1641 self.app._set_mouse_over(None, None)
1642 if self._tooltip_timer is not None:
1643 self._tooltip_timer.stop()
1644 if not self.app._disable_tooltips:
1645 try:
1646 self.get_child_by_type(Tooltip).display = False
1647 except NoMatches:
1648 pass
1649 else:
1650 self.app._set_mouse_over(widget, hover_widget)
1651 self.update_pointer_shape()
1652 widget.hover_style = event.style
1653 if widget is self:
1654 self.post_message(event)
1655 else:
1656 mouse_event = self._translate_mouse_move_event(event, widget, region)
1657 mouse_event._set_forwarded()
1658 widget._forward_event(mouse_event)
1659
1660 if not self.app._disable_tooltips:
1661 try:
1662 tooltip = self.get_child_by_type(Tooltip)
1663 except NoMatches:
1664 pass
1665 else:
1666 if self._tooltip_widget != widget or not tooltip.display:
1667 self._tooltip_widget = widget
1668 if self._tooltip_timer is not None:
1669 self._tooltip_timer.stop()
1670
1671 self._tooltip_timer = self.set_timer(
1672 self.app.TOOLTIP_DELAY,
1673 partial(self._handle_tooltip_timer, widget),
1674 name="tooltip-timer",
1675 )
1676 else:
1677 tooltip.display = False
1678 self.screen.update_pointer_shape()
1679
1680 @staticmethod
1681 def _translate_mouse_move_event(

Callers 1

_forward_eventMethod · 0.95

Calls 11

find_widgetMethod · 0.95
get_hover_widgets_atMethod · 0.95
update_pointer_shapeMethod · 0.95
_set_mouse_overMethod · 0.80
_set_forwardedMethod · 0.80
set_timerMethod · 0.80
stopMethod · 0.45
get_child_by_typeMethod · 0.45
post_messageMethod · 0.45
_forward_eventMethod · 0.45

Tested by

no test coverage detected