@@ -1804,7 +1804,7 @@ def __init__(self, ax, onselect, useblit=False, button=None,
1804
1804
state_modifier_keys = None , use_data_coordinates = False ):
1805
1805
super ().__init__ (ax )
1806
1806
1807
- self .visible = True
1807
+ self ._visible = True
1808
1808
self .onselect = onselect
1809
1809
self .useblit = useblit and self .canvas .supports_blit
1810
1810
self .connect_default_events ()
@@ -2052,16 +2052,32 @@ def _on_key_release(self, event):
2052
2052
"""Key release event handler."""
2053
2053
2054
2054
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
2057
2057
for artist in self .artists :
2058
2058
artist .set_visible (visible )
2059
2059
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
+
2060
2073
def clear (self ):
2061
2074
"""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 ):
2062
2079
self ._selection_completed = False
2063
2080
self .set_visible (False )
2064
- self .update ()
2065
2081
2066
2082
@property
2067
2083
def artists (self ):
@@ -2266,8 +2282,6 @@ def __init__(self, ax, onselect, direction, minspan=0, useblit=False,
2266
2282
props ['animated' ] = self .useblit
2267
2283
2268
2284
self .direction = direction
2269
-
2270
- self .visible = True
2271
2285
self ._extents_on_press = None
2272
2286
self .snap_values = snap_values
2273
2287
@@ -2405,11 +2419,11 @@ def _press(self, event):
2405
2419
# when the press event outside the span, we initially set the
2406
2420
# visibility to False and extents to (v, v)
2407
2421
# update will be called when setting the extents
2408
- self .visible = False
2422
+ self ._visible = False
2409
2423
self .extents = v , v
2410
2424
# We need to set the visibility back, so the span selector will be
2411
2425
# drawn when necessary (span width > 0)
2412
- self .visible = True
2426
+ self ._visible = True
2413
2427
else :
2414
2428
self .set_visible (True )
2415
2429
@@ -2598,7 +2612,7 @@ def extents(self, extents):
2598
2612
if self ._interactive :
2599
2613
# Update displayed handles
2600
2614
self ._edge_handles .set_data (self .extents )
2601
- self .set_visible (self .visible )
2615
+ self .set_visible (self ._visible )
2602
2616
self .update ()
2603
2617
2604
2618
@@ -2912,7 +2926,6 @@ def __init__(self, ax, onselect, drawtype='box',
2912
2926
state_modifier_keys = state_modifier_keys ,
2913
2927
use_data_coordinates = use_data_coordinates )
2914
2928
2915
- self .visible = True
2916
2929
self ._interactive = interactive
2917
2930
self .drag_from_anywhere = drag_from_anywhere
2918
2931
self .ignore_event_outside = ignore_event_outside
@@ -2931,14 +2944,14 @@ def __init__(self, ax, onselect, drawtype='box',
2931
2944
"%(removal)s."
2932
2945
"Use props=dict(visible=False) instead." )
2933
2946
drawtype = 'line'
2934
- self .visible = False
2947
+ self ._visible = False
2935
2948
2936
2949
if drawtype == 'box' :
2937
2950
if props is None :
2938
2951
props = dict (facecolor = 'red' , edgecolor = 'black' ,
2939
2952
alpha = 0.2 , fill = True )
2940
2953
props ['animated' ] = self .useblit
2941
- self .visible = props .pop ('visible' , self .visible )
2954
+ self ._visible = props .pop ('visible' , self ._visible )
2942
2955
self ._props = props
2943
2956
to_draw = self ._init_shape (** self ._props )
2944
2957
self .ax .add_patch (to_draw )
@@ -3035,9 +3048,9 @@ def _press(self, event):
3035
3048
self ._allow_creation ):
3036
3049
x = event .xdata
3037
3050
y = event .ydata
3038
- self .visible = False
3051
+ self ._visible = False
3039
3052
self .extents = x , x , y , y
3040
- self .visible = True
3053
+ self ._visible = True
3041
3054
else :
3042
3055
self .set_visible (True )
3043
3056
@@ -3082,12 +3095,10 @@ def _release(self, event):
3082
3095
# either x or y-direction
3083
3096
minspanxy = (spanx <= self .minspanx or spany <= self .minspany )
3084
3097
if (self ._drawtype != 'none' and minspanxy ):
3085
- for artist in self .artists :
3086
- artist .set_visible (False )
3087
3098
if self ._selection_completed :
3088
3099
# Call onselect, only when the selection is already existing
3089
3100
self .onselect (self ._eventpress , self ._eventrelease )
3090
- self ._selection_completed = False
3101
+ self ._clear_without_update ()
3091
3102
else :
3092
3103
self .onselect (self ._eventpress , self ._eventrelease )
3093
3104
self ._selection_completed = True
@@ -3331,7 +3342,7 @@ def extents(self, extents):
3331
3342
self ._corner_handles .set_data (* self .corners )
3332
3343
self ._edge_handles .set_data (* self .edge_centers )
3333
3344
self ._center_handle .set_data (* self .center )
3334
- self .set_visible (self .visible )
3345
+ self .set_visible (self ._visible )
3335
3346
self .update ()
3336
3347
3337
3348
@property
0 commit comments