@@ -1481,23 +1481,6 @@ def _forward_event(self, event: events.Event) -> None:
14811481 if isinstance (event , (events .Enter , events .Leave )):
14821482 self .post_message (event )
14831483
1484- if isinstance (event , events .MouseDown ):
1485- self ._mouse_down_offset = event .screen_offset
1486- select_widget , select_offset = self .get_widget_and_offset_at (
1487- event .screen_x , event .screen_y
1488- )
1489- if select_widget is not None and select_widget .allow_select :
1490- self ._selecting = True
1491- if select_widget is not None and select_offset is not None :
1492- self ._select_start = (
1493- select_widget ,
1494- event .screen_offset ,
1495- select_offset ,
1496- )
1497-
1498- else :
1499- self ._selecting = False
1500-
15011484 elif isinstance (event , events .MouseUp ):
15021485 if (
15031486 self ._mouse_down_offset is not None
@@ -1522,7 +1505,23 @@ def _forward_event(self, event: events.Event) -> None:
15221505 ):
15231506 self ._select_end = (select_widget , event .offset , select_offset )
15241507
1525- if isinstance (event , events .MouseEvent ):
1508+ elif isinstance (event , events .MouseEvent ):
1509+ if isinstance (event , events .MouseDown ) and not self .app .mouse_captured :
1510+ self ._mouse_down_offset = event .screen_offset
1511+ select_widget , select_offset = self .get_widget_and_offset_at (
1512+ event .screen_x , event .screen_y
1513+ )
1514+ if select_widget is not None and select_widget .allow_select :
1515+ self ._selecting = True
1516+ if select_widget is not None and select_offset is not None :
1517+ self ._select_start = (
1518+ select_widget ,
1519+ event .screen_offset ,
1520+ select_offset ,
1521+ )
1522+ else :
1523+ self ._selecting = False
1524+
15261525 try :
15271526 if self .app .mouse_captured :
15281527 widget = self .app .mouse_captured
0 commit comments