@@ -263,11 +263,9 @@ def set_offset(self, xy):
263263 xy : (float, float) or callable
264264 The (x, y) coordinates of the offset in display units. These can
265265 either be given explicitly as a tuple (x, y), or by providing a
266- function that converts the extent into the offset. This function
267- must have the signature::
268-
269- def offset(width, height, xdescent, ydescent, renderer) \
270- -> (float, float)
266+ function dynamically computes an offset (taking the arguments
267+ passed to `.OffsetBox.get_offset`). It is recommended, but not
268+ compulsory, to make such functions take no arguments.
271269 """
272270 self ._offset = xy
273271 self .stale = True
@@ -340,7 +338,7 @@ def get_extent(self, renderer):
340338 def get_window_extent (self , renderer ):
341339 # docstring inherited
342340 w , h , xd , yd = self .get_extent (renderer )
343- px , py = self .get_offset (w , h , xd , yd , renderer )
341+ px , py = self .get_offset ()
344342 return mtransforms .Bbox .from_bounds (px - xd , py - yd , w , h )
345343
346344 def draw (self , renderer ):
@@ -349,7 +347,7 @@ def draw(self, renderer):
349347 to the given *renderer*.
350348 """
351349 w , h , xdescent , ydescent , offsets = self .get_extent_offsets (renderer )
352- px , py = self .get_offset (w , h , xdescent , ydescent , renderer )
350+ px , py = self .get_offset ()
353351 for c , (ox , oy ) in zip (self .get_visible_children (), offsets ):
354352 c .set_offset ((px + ox , py + oy ))
355353 c .draw (renderer )
@@ -530,7 +528,7 @@ def get_extent_offsets(self, renderer):
530528 def draw (self , renderer ):
531529 # docstring inherited
532530 w , h , xdescent , ydescent , offsets = self .get_extent_offsets (renderer )
533- px , py = self .get_offset (w , h , xdescent , ydescent , renderer )
531+ px , py = self .get_offset ()
534532 for c , (ox , oy ) in zip (self .get_visible_children (), offsets ):
535533 c .set_offset ((px + ox , py + oy ))
536534
@@ -1037,9 +1035,10 @@ def get_window_extent(self, renderer):
10371035 # docstring inherited
10381036 # Update the offset func, which depends on the dpi of the renderer
10391037 # (because of the padding).
1038+ w , h , xd , yd = self .get_extent (renderer )
10401039 fontsize = renderer .points_to_pixels (self .prop .get_size_in_points ())
10411040
1042- def _offset (w , h , xd , yd , renderer ):
1041+ def _offset (* args , ** kwargs ): # args are ignored; left for backcompat.
10431042 bbox = Bbox .from_bounds (0 , 0 , w , h )
10441043 pad = self .borderpad * fontsize
10451044 bbox_to_anchor = self .get_bbox_to_anchor ()
@@ -1065,9 +1064,7 @@ def draw(self, renderer):
10651064 self .update_frame (bbox , fontsize )
10661065 self .patch .draw (renderer )
10671066
1068- width , height , xdescent , ydescent = self .get_extent (renderer )
1069-
1070- px , py = self .get_offset (width , height , xdescent , ydescent , renderer )
1067+ px , py = self .get_offset ()
10711068
10721069 self .get_child ().set_offset ((px , py ))
10731070 self .get_child ().draw (renderer )
@@ -1566,8 +1563,7 @@ def __init__(self, ref_artist, offsetbox, use_blit=False):
15661563 def save_offset (self ):
15671564 offsetbox = self .offsetbox
15681565 renderer = offsetbox .figure ._cachedRenderer
1569- w , h , xd , yd = offsetbox .get_extent (renderer )
1570- offset = offsetbox .get_offset (w , h , xd , yd , renderer )
1566+ offset = offsetbox .get_offset ()
15711567 self .offsetbox_x , self .offsetbox_y = offset
15721568 self .offsetbox .set_offset (offset )
15731569
0 commit comments