@@ -1804,7 +1804,7 @@ def __init__(self, ax, onselect, useblit=False, button=None,
18041804 state_modifier_keys = None , use_data_coordinates = False ):
18051805 super ().__init__ (ax )
18061806
1807- self .visible = True
1807+ self ._visible = True
18081808 self .onselect = onselect
18091809 self .useblit = useblit and self .canvas .supports_blit
18101810 self .connect_default_events ()
@@ -2052,16 +2052,32 @@ def _on_key_release(self, event):
20522052 """Key release event handler."""
20532053
20542054 def set_visible (self , visible ):
2055- """Set the visibility of our artists."""
2056- self .visible = visible
2055+ """Set the visibility of the selector artists."""
2056+ self ._visible = visible
20572057 for artist in self .artists :
20582058 artist .set_visible (visible )
20592059
2060+ def get_visible (self ):
2061+ """Get the visibility of the selector artists."""
2062+ return self ._visible
2063+
2064+ @property
2065+ def visible (self ):
2066+ return self .get_visible ()
2067+
2068+ @visible .setter
2069+ def visible (self , visible ):
2070+ _api .warn_deprecated ("3.6" , alternative = "set_visible" )
2071+ self .set_visible (visible )
2072+
20602073 def clear (self ):
20612074 """Clear the selection and set the selector ready to make a new one."""
2075+ self ._clear_without_update ()
2076+ self .update ()
2077+
2078+ def _clear_without_update (self ):
20622079 self ._selection_completed = False
20632080 self .set_visible (False )
2064- self .update ()
20652081
20662082 @property
20672083 def artists (self ):
@@ -2266,8 +2282,6 @@ def __init__(self, ax, onselect, direction, minspan=0, useblit=False,
22662282 props ['animated' ] = self .useblit
22672283
22682284 self .direction = direction
2269-
2270- self .visible = True
22712285 self ._extents_on_press = None
22722286 self .snap_values = snap_values
22732287
@@ -2405,11 +2419,11 @@ def _press(self, event):
24052419 # when the press event outside the span, we initially set the
24062420 # visibility to False and extents to (v, v)
24072421 # update will be called when setting the extents
2408- self .visible = False
2422+ self ._visible = False
24092423 self .extents = v , v
24102424 # We need to set the visibility back, so the span selector will be
24112425 # drawn when necessary (span width > 0)
2412- self .visible = True
2426+ self ._visible = True
24132427 else :
24142428 self .set_visible (True )
24152429
@@ -2598,7 +2612,7 @@ def extents(self, extents):
25982612 if self ._interactive :
25992613 # Update displayed handles
26002614 self ._edge_handles .set_data (self .extents )
2601- self .set_visible (self .visible )
2615+ self .set_visible (self ._visible )
26022616 self .update ()
26032617
26042618
@@ -2912,7 +2926,6 @@ def __init__(self, ax, onselect, drawtype='box',
29122926 state_modifier_keys = state_modifier_keys ,
29132927 use_data_coordinates = use_data_coordinates )
29142928
2915- self .visible = True
29162929 self ._interactive = interactive
29172930 self .drag_from_anywhere = drag_from_anywhere
29182931 self .ignore_event_outside = ignore_event_outside
@@ -2931,14 +2944,14 @@ def __init__(self, ax, onselect, drawtype='box',
29312944 "%(removal)s."
29322945 "Use props=dict(visible=False) instead." )
29332946 drawtype = 'line'
2934- self .visible = False
2947+ self ._visible = False
29352948
29362949 if drawtype == 'box' :
29372950 if props is None :
29382951 props = dict (facecolor = 'red' , edgecolor = 'black' ,
29392952 alpha = 0.2 , fill = True )
29402953 props ['animated' ] = self .useblit
2941- self .visible = props .pop ('visible' , self .visible )
2954+ self ._visible = props .pop ('visible' , self ._visible )
29422955 self ._props = props
29432956 to_draw = self ._init_shape (** self ._props )
29442957 self .ax .add_patch (to_draw )
@@ -3035,9 +3048,9 @@ def _press(self, event):
30353048 self ._allow_creation ):
30363049 x = event .xdata
30373050 y = event .ydata
3038- self .visible = False
3051+ self ._visible = False
30393052 self .extents = x , x , y , y
3040- self .visible = True
3053+ self ._visible = True
30413054 else :
30423055 self .set_visible (True )
30433056
@@ -3082,12 +3095,10 @@ def _release(self, event):
30823095 # either x or y-direction
30833096 minspanxy = (spanx <= self .minspanx or spany <= self .minspany )
30843097 if (self ._drawtype != 'none' and minspanxy ):
3085- for artist in self .artists :
3086- artist .set_visible (False )
30873098 if self ._selection_completed :
30883099 # Call onselect, only when the selection is already existing
30893100 self .onselect (self ._eventpress , self ._eventrelease )
3090- self ._selection_completed = False
3101+ self ._clear_without_update ()
30913102 else :
30923103 self .onselect (self ._eventpress , self ._eventrelease )
30933104 self ._selection_completed = True
@@ -3331,7 +3342,7 @@ def extents(self, extents):
33313342 self ._corner_handles .set_data (* self .corners )
33323343 self ._edge_handles .set_data (* self .edge_centers )
33333344 self ._center_handle .set_data (* self .center )
3334- self .set_visible (self .visible )
3345+ self .set_visible (self ._visible )
33353346 self .update ()
33363347
33373348 @property
0 commit comments