Skip to content

Commit bde7350

Browse files
committed
Reorder the code in the draw() method of Line2D to fix issue 4338
1 parent 3756b91 commit bde7350

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

lib/matplotlib/lines.py

+23-23
Original file line numberDiff line numberDiff line change
@@ -685,36 +685,37 @@ def draw(self, renderer):
685685
renderer = PathEffectRenderer(self.get_path_effects(), renderer)
686686

687687
renderer.open_group('line2d', self.get_gid())
688-
gc = renderer.new_gc()
689-
self._set_gc_clip(gc)
690-
691-
ln_color_rgba = self._get_rgba_ln_color()
692-
gc.set_foreground(ln_color_rgba, isRGBA=True)
693-
gc.set_alpha(ln_color_rgba[3])
694-
695-
gc.set_antialiased(self._antialiased)
696-
gc.set_linewidth(self._linewidth)
697-
698-
if self.is_dashed():
699-
cap = self._dashcapstyle
700-
join = self._dashjoinstyle
701-
else:
702-
cap = self._solidcapstyle
703-
join = self._solidjoinstyle
704-
gc.set_joinstyle(join)
705-
gc.set_capstyle(cap)
706-
gc.set_snap(self.get_snap())
707-
if self.get_sketch_params() is not None:
708-
gc.set_sketch_params(*self.get_sketch_params())
709-
710688
funcname = self._lineStyles.get(self._linestyle, '_draw_nothing')
711689
if funcname != '_draw_nothing':
712690
tpath, affine = transf_path.get_transformed_path_and_affine()
713691
if len(tpath.vertices):
714692
self._lineFunc = getattr(self, funcname)
715693
funcname = self.drawStyles.get(self._drawstyle, '_draw_lines')
716694
drawFunc = getattr(self, funcname)
695+
gc = renderer.new_gc()
696+
self._set_gc_clip(gc)
697+
698+
ln_color_rgba = self._get_rgba_ln_color()
699+
gc.set_foreground(ln_color_rgba, isRGBA=True)
700+
gc.set_alpha(ln_color_rgba[3])
701+
702+
gc.set_antialiased(self._antialiased)
703+
gc.set_linewidth(self._linewidth)
704+
705+
if self.is_dashed():
706+
cap = self._dashcapstyle
707+
join = self._dashjoinstyle
708+
else:
709+
cap = self._solidcapstyle
710+
join = self._solidjoinstyle
711+
gc.set_joinstyle(join)
712+
gc.set_capstyle(cap)
713+
gc.set_snap(self.get_snap())
714+
if self.get_sketch_params() is not None:
715+
gc.set_sketch_params(*self.get_sketch_params())
716+
717717
drawFunc(renderer, gc, tpath, affine.frozen())
718+
gc.restore()
718719

719720
if self._marker:
720721
gc = renderer.new_gc()
@@ -774,7 +775,6 @@ def draw(self, renderer):
774775

775776
gc.restore()
776777

777-
gc.restore()
778778
renderer.close_group('line2d')
779779

780780
def get_antialiased(self):

0 commit comments

Comments
 (0)