@@ -598,3 +598,29 @@ def test_polygon_selector_remove_first_point():
598
598
polygon_place_vertex (* verts [0 ]) +
599
599
polygon_remove_vertex (* verts [0 ]))
600
600
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