@@ -598,3 +598,29 @@ def test_polygon_selector_remove_first_point():
598598 polygon_place_vertex (* verts [0 ]) +
599599 polygon_remove_vertex (* verts [0 ]))
600600 check_polygon_selector (event_sequence , verts [1 :], 2 )
601+
602+
603+ def test_polygon_selector_redraw ():
604+ verts = [(50 , 50 ), (150 , 50 ), (50 , 150 )]
605+ event_sequence = (polygon_place_vertex (* verts [0 ]) +
606+ polygon_place_vertex (* verts [1 ]) +
607+ polygon_place_vertex (* verts [2 ]) +
608+ polygon_place_vertex (* verts [0 ]) +
609+ # Polygon completed, now remove first two verts
610+ polygon_remove_vertex (* verts [1 ]) +
611+ polygon_remove_vertex (* verts [2 ]) +
612+ # At this point the tool should be reset so we can add
613+ # more vertices
614+ polygon_place_vertex (* verts [1 ]))
615+
616+ ax = get_ax ()
617+
618+ def onselect (vertices ):
619+ pass
620+
621+ tool = widgets .PolygonSelector (ax , onselect )
622+ for (etype , event_args ) in event_sequence :
623+ do_event (tool , etype , ** event_args )
624+ # After removing two verts, only one remains, and the
625+ # selector should be automatically resete
626+ assert tool .verts == verts [0 :2 ]
0 commit comments